home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 12 / Cream of the Crop 12 (Part II) / Cream of the Crop 12 (Part II).iso / BBS / NANO116.ZIP / NANOBBS.DOC < prev    next >
Encoding:
Text File  |  1996-02-04  |  235.0 KB  |  6,482 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.      ▄█████▄  ▄█████▄  ▄█████▄   ▄████▄  ▄█████▄  ▄█████▄    ▄████▄
  10.      ▄▄▄ ▀███ ▄▄▄ ▀███ ▄▄▄ ▀███ ▄▄▄ ▀███ ▄▄▄  ██▀ ▄▄▄  ██▀ ▄▄▄  ▀▀▀
  11.      ███  ███ ███  ███ ███    ███ ███  ███ ██████▄  ██████▄    ▀████▄
  12.      ███  ███ ████████ ███    ███ ███▄ ███ ███  ███ ███  ███ ▄▄▄  ███
  13.      ███  ███ ███  ███ ███    ███  ▀████▀  ██████▀  ██████▀    ▀████▀
  14.  
  15.                                 NanoBBS 1.16
  16.                     Copyright 1993-1996 Whirlwind Software
  17.                  All Rights Reserved
  18.  
  19.              Programs and Documentation
  20.                      by
  21.                   Gerald T. Albion
  22.  
  23.                - Additional Code by -
  24.               Mark Dignam and Mark May
  25.  
  26.                                - Beta Testers -
  27.                   Don St. Germain   "Big Bad" John Barnard
  28.  
  29.                 - Numerous Helpful Suggestions Provided by -
  30.                         Allen Walker  Patrick Wilson
  31.                        Ryan Clifford  Brent Boudreau
  32.  
  33.                 - This product uses -
  34.      JAM(mbp) - Copyright 1993 Joaquim Homrighausen, Andrew Milner,
  35.                    Mats Birch, Mats Wallin.
  36.                    ALL RIGHTS RESERVED.
  37.  
  38.                 - Special thanks to -
  39.                      The users of THC BBS, Victoria, BC
  40.       for their endless patience and priceless assistance in the
  41.                development of UFO and NanoBBS.
  42.  
  43.              This document contains references to many trademarks.
  44.              Whirlwind Software acknowledges ownership of all such
  45.                      trademarks by their respective owners.
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.         NanoBBS 1.16 Documentation                              Page 01
  61.  
  62.     CONTENTS
  63.  
  64.         Introduction  ........................................   3
  65.         Version Numbering  ...................................   6
  66.         System Requirements  .................................   7
  67.         Setting Up NanoBBS  ..................................   8
  68.           - 10 Step Installation  ............................   9
  69.           - Command Line Switches  ...........................  11
  70.         The Configuration File  ..............................  13
  71.         Message Areas  .......................................  30
  72.           - Examples  ........................................  30
  73.           - Keyword Reference  ...............................  32
  74.         File Areas  ..........................................  35
  75.           - Examples  ........................................  35
  76.           - Keyword Reference  ...............................  37
  77.         Doors  ...............................................  39
  78.         The Black Art of Batch File Writing  .................  42
  79.         NanoBBS Utility Programs  ............................  54
  80.         External Files  ......................................  55
  81.           - Various Configuration Files  .....................  55
  82.           - FILES.BBS  .......................................  58
  83.           - Semaphores  ......................................  61
  84.           - ASCII/ANSI/RIP files in /BBS/MISC  ...............  62
  85.           - NanoCHAT external files  .........................  65
  86.         Keys While The User Is Online  .......................  66
  87.         A Tour of the WFC (Waiting For Call) screen  .........
  88.         A Tour of the user editor  ...........................
  89.         A Tour of NanoBBS's canned main menu interface .......  68
  90.         Language Files - Customizing almost Everything!  .....  73
  91.         Embedded Colour Commands  ............................  78
  92.         NanoCHAT - Setting up NanoBBS as a chat system  ......  80
  93.         Glossary  ............................................  93
  94.         Contact Information  .................................  99
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.         NanoBBS 1.16 Documentation                              Page 02
  121.  
  122.  
  123.         ╔═╦═══════════════════════════════════╦═╗
  124.     ║ ║ Introduction:  What -is- NanoBBS? ║ ║
  125.     ╚═╩═══════════════════════════════════╩═╝
  126.  
  127.  
  128.     NanoBBS is a highly configurable BBS package.  Its features
  129.     include:
  130.  
  131.     - User-visible output is configurable via language files
  132.     - UFO, a powerful scripting language with access to virtually
  133.         all system and user variables
  134.     - Built-in NanoCHAT, a teleconferencer based on Whirlwind's
  135.       TommCHAT teleconference door.  You don't pay extra for
  136.       multiuser chat with NanoBBS!
  137.     - Your choice of *.MSG, Squish, or JAM message bases
  138.     - Up to 65535 message areas and 65535 file areas
  139.     - Full internal support for CD-ROMs including a fast
  140.         copy-to-temporary-file function and alternate FILES.BBS
  141.         directories
  142.     - Users can embed colours in messages
  143.     - An internal full screen message editor
  144.     - High speed file searching and new-file scans
  145.     - Works up to 115200 bps with or without a FOSSIL
  146.     - Convenient internal user editor
  147.     - Sysop-definable time limits by access level
  148.     - Account expiry can be set for any date
  149.     - Doors can be age-restricted, no worries about minors playing
  150.         adult doors!
  151.     - File areas and message bases can be restricted by age - give
  152.         users adult access on their 21st birthday automatically!
  153.     - Message bases can be restricted by gender, for "ladies only"
  154.         echoes etc.
  155.     - Users may logon with real name, pseudonym or user number,
  156.         whichever is easiest!
  157.     - New User Password and System Password features add virtually
  158.         impenetrable extra security to private systems!
  159.     - SysOp can select between a canned hardcoded BBS or build a
  160.         completely new one using UFO scripting
  161.     - Lists (file areas, message areas, users, etc) can be
  162.         automatically displayed in one, two or three columns
  163.     - Multi-node aware and Desqview friendly!  Node numbers can even
  164.         be passed to doors!
  165.  
  166.  
  167.     APPEARANCE: IF UNIQUENESS IS IMPORTANT TO YOU!
  168.  
  169.     Although NanoBBS excels in many areas, it is designed first to
  170.     give its sysop the maximum flexibility in configuring the
  171.     function and appearance of the BBS.  The UFO scripting language
  172.     allows you to build entire menus and call upon virtually all
  173.     functions of the BBS from within a text file!  And, the messages
  174.     that would normally be hardcoded in other BBSes are located in a
  175.     RAM-based language file which can be modified or totally
  176.     rewritten as the SysOp sees fit!  What's more, NanoBBS does not
  177.     require an ANSI driver like so many other lesser BBSes, in fact
  178.  
  179.  
  180.         NanoBBS 1.16 Documentation                              Page 03
  181.  
  182.         it doesn't even need separate ANSI and ASCII files for system
  183.     text files, although it does allow the separate files.    If a
  184.     user has ANSI turned off, the BBS can strip ANSI codes on the
  185.     fly, and even expand horizontal ANSI cursor movements into
  186.     spaces or backspaces as needed!  Of course, automatic ANSI
  187.     detection is standard and can be turned off if desired!  Random
  188.     welcome screens are also a supported standard feature!    And a
  189.     comprehensive RIPScrip suite is built into the UFO script
  190.     language and in the system language files, so that you can make
  191.     RIPScrip screens in plain English without buying an expensive "Rip
  192.     Draw" type of program.  And, there are forty sysop-definable
  193.     sysop keys for ultimate convenience!
  194.  
  195.     SECURITY: TAKE CONTROL OF YOUR BBS!
  196.  
  197.     NanoBBS is also designed with security in mind, with NUPs and
  198.     system passwords, and the ability to restrict message areas
  199.     based on age and sex, and file areas based on age.  These
  200.     features alone make NanoBBS ideal for an adult BBS or an
  201.     exclusive private system, but once you've moulded NanoBBS's form
  202.     and performance to your ideal image you'll want to put it online
  203.     for everyone to use!  The BBS also supports "expiring" accounts
  204.     which allow a time-limited access level, which takes all the
  205.     work out of keeping track of accounts on pay systems!  You can
  206.     set accounts to expire anywhere from a day to 50 years in the
  207.     future, or you can have no expiry date at all! You can also
  208.     select which questions in the new-user questionnaire are
  209.     required and which ones are optional, and even which ones will
  210.     be asked at all!  All file areas can have a different directory
  211.     set for uploads than for downloads, allowing the sysop to screen
  212.     uploads in private before making them available to users!  This
  213.     prevents pirated programs from being distributed on your BBS
  214.     without your knowledge!  There are also "barricades" which let
  215.     you unobtrusively and judiciously remove certain individuals
  216.     from certain message areas without otherwise lowering anyone's
  217.     access.  A programmable "trashcan" and "message censor" round out
  218.     the list of features designed to protect you and your BBS from
  219.     abuse!
  220.  
  221.     HIGH SPEED FILE SECTIONS!
  222.  
  223.     NanoBBS is also designed with very large file sections in mind!
  224.  
  225.         With the author's own BBS totalling over 2 gigs online, the
  226.     problems of quickly finding and accessing files on a large
  227.         system are all too evident.  So, a number of special caching
  228.     routines and high-speed file indices have been implemented to
  229.     give the maximum search and retrieval speed possible!  If you
  230.     run a small or average BBS, searches will be nearly
  231.         instantaneous.  The author's BBS has some 25,000 files and any
  232.     one can be located in seconds!
  233.  
  234.     In addition, you can set any file area to be a CD-ROM area!  You
  235.     can set a directory for FILES.BBS that is separate from the CD
  236.     so that you will be able to remove files that you don't want
  237.         users to access, or change the descriptions!  Downloads from
  238.  
  239.  
  240.         NanoBBS 1.16 Documentation                              Page 04
  241.  
  242.         CD-ROM areas are accomplished by first copying the file(s) from
  243.     the CD to a temporary directory, to minimise the problems of
  244.         speed and system resource usage that arise from directly
  245.     downloading from a CD.    SysOps who want to preview a CD without
  246.     taking the BBS down can hit a "CD OUT" key at the wait-for-call
  247.     screen, and immediately all CD file areas are shut off, allowing
  248.     you to change the CD and examine another one without worrying
  249.     about a user trying to access a file on the one you just took
  250.     out...
  251.  
  252.     Of course, file upload/download ratios by kilobyte are also
  253.     supported, giving you complete control over file leeches!
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.         NanoBBS 1.16 Documentation                              Page 05
  301.  
  302.         ╔═╦═══════════════════╦═╗
  303.     ║ ║ Version Numbering ║ ║
  304.     ╚═╩═══════════════════╩═╝
  305.  
  306.     NanoBBS version numbers can be used to distunguish one version
  307.     from another in the following ways:
  308.  
  309.                      1.00a
  310.                      | |||
  311.                      | |||
  312.          Major Revision ---------' |||
  313.          Minor Revision -----------'||
  314.          Maintenance Release -------'|
  315.          Bug Fix --------------------'
  316.  
  317.     So, for example, 2.00a differs from 1.00a in that 2.00a is a
  318.     Major Revision, for example the structure of one or more data
  319.     files has changed, or some new feature or set of features has
  320.     been added that drastically improves or changes NanoBBS's
  321.     appearance and function.
  322.  
  323.     Likewise, 1.10a is different from 1.00a in that 1.10a has new
  324.     features, for example a new file searching mode or a new message
  325.     base format.
  326.  
  327.         1.02a is different from 1.00a in that 1.02a is a maintenance
  328.     release.  This means some improvement to the existing function
  329.     of the BBS, for example the reduction of memory usage for a
  330.     particular function or the improvement in the speed of some part
  331.     of the BBS.
  332.  
  333.     1.00b is different from 1.00a in that 1.00b contains fixes for
  334.     bugs that existed in 1.00a.
  335.  
  336.         The "Maintenance Release" part of the version number is always
  337.         an even digit (0, 2, 4, 6, or 8) if the version is a full public
  338.         release of the software, and is always odd if the version is a wide
  339.         beta or a private beta.  Thus, 1.14 is an official release, whereas
  340.         1.15 is a beta that will eventually become 1.16.
  341.  
  342.         All these are just examples.  As NanoBBS evolves, there will no
  343.     doubt be many different version numbers.
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.         NanoBBS 1.16 Documentation                              Page 06
  361.  
  362.         ╔═╦═════════════════════╦═╗
  363.     ║ ║ System Requirements ║ ║
  364.     ╚═╩═════════════════════╩═╝
  365.  
  366.     - An 80286 or better IBM compatible computer with at least 512k RAM
  367.     - At least 20 megabytes of hard disk space (recommended)
  368.     - A modem, any speed (at least 14400 recommended)
  369.     - A standard serial port, or a multi-serial board with a special
  370.         FOSSIL driver
  371.         - A FOSSIL is NOT required!
  372.     - A flat-ASCII text editor such as QEdit or the DOS full screen
  373.         editor is a must for editing configuration files
  374.     - An external Message Editor such as MsgEd or GoldEd is
  375.         recommended
  376.     - An external File Area Manager such as FEBBS or Fido-Fam is
  377.         recommended
  378.     - A RAM Disk of at least 400k for each node is highly
  379.         recommended for swapping.
  380.  
  381.     NanoBBS uses 16-bit 80286 code.  It will not run on an 8088 or
  382.     other 8-bit machine.
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.         NanoBBS 1.16 Documentation                              Page 07
  421.  
  422.         ╔═╦════════════════════╦═╗
  423.     ║ ║ Setting up NanoBBS ║ ║
  424.     ╚═╩════════════════════╩═╝
  425.  
  426.     NanoBBS can be run "out of the box" by taking a few very simple
  427.         steps.
  428.  
  429.         OK, if you're totally new at this, then maybe the steps won't seem
  430.         all that simple, so I will try and make this as painless as
  431.         possible.  Because it is impossible for me to predict the numerous
  432.         configurations of computers, software, and paths that NanoBBS will
  433.         be installed on, I can only give general installation instructions.
  434.  
  435.         If you find you just can't get NanoBBS going no matter what you do,
  436.         first re-read these instructions and make sure you haven't missed
  437.         something, then if that doesn't succeed ask someone else who is
  438.         running NanoBBS if they have had a similar problem and how they
  439.         solved it.  If that doesn't work (or if you can't find someone else
  440.         who runs the software successfully) then feel free to drop me a
  441.         line by netmail or on my BBS (see the "Contact Information" at
  442.         the end of this document).  Be specific about what's happening
  443.         with your system - I may ask for copies of your config files
  444.         etc. To contact me, see the netmail address and BBS phone number
  445.         at the end of this file.
  446.  
  447.     If this is the first time you have installed NanoBBS, be warned
  448.     that NanoBBS will try to install itself in the C:\BBS directory.
  449.     You can move it to another directory after it is installed, but
  450.     you'll need to change the paths in all of your configuration
  451.     files if you do this.
  452.  
  453.     Before you install NanoBBS, make sure your system meets the
  454.     following minimum requirements:
  455.  
  456.         - You need a hard disk with at least several megs free.
  457.         - You need about 380 kilobytes of RAM free.  This is
  458.           inconsequential for most installations, but it might
  459.           be an issue if you are using a multitasker such as
  460.           DesqView.
  461.         - You need a FOSSIL driver, revision 5 or later.
  462.           Several common FOSSILs are X00, BNU, and OpusComm.
  463.           The FOSSIL must be installed and available before
  464.           NanoBBS is able to run.  Check your FOSSIL
  465.           documentation for installation instructions.
  466.                 - You need to be running DOS, either MS-DOS or PC-DOS.  I
  467.                   have received mixed reviews of NanoBBS's installability
  468.                   under Win95 and OS/2 Warp, so your mileage may definitely
  469.                   vary.  Good thing NanoBBS is shareware!  However, because
  470.                   I don't use Win95 or Warp, I cannot offer support for
  471.                   NanoBBS installations under these operating systems.
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.         NanoBBS 1.16 Documentation                              Page 08
  481.  
  482.         ┌──────────────────────┐
  483.     │ 10 Step Installation │
  484.     └──────────────────────┘
  485.  
  486.      ┌───┐
  487.          │ 1 │ To install NanoBBS, just run INSTALL.EXE.  The install
  488.          └───┘ program will unpack the program files, and will then
  489.                determine whether it needs to also install the ASCII and
  490.                ANSI and RIP files, and whether it should install default
  491.                configuration files.  It will also install and compile the
  492.                language files.
  493.  
  494.                Once INSTALL is complete, you need to take the following
  495.                general steps, which will be explained in much greater
  496.                detail later in this manual...
  497.  
  498.      ┌───┐
  499.      │ 2 │ Edit NODE1.CTL (using an ASCII text editor or word
  500.          └───┘ processor in ASCII mode) to your specifications.  Set the
  501.                proper paths, com ports, baud rates, modem control and
  502.                response strings, default access levels, events, and
  503.                everything else that needs to be adjusted to your
  504.                requirements.  NODE1.CTL is the main configuration file
  505.                containing most of the general setup of the BBS.  See the
  506.                chapter titled "The Configuration File" for a complete
  507.                explanation of the use of this file.  Since NanoBBS is a
  508.                multi-line system, NODE2.CTL is also installed by the
  509.                INSTALL.EXE program.  Both control files are automatically
  510.                edited by the INSTALL.EXE program to fit the path you have
  511.                chosen for the BBS's "system" directory.
  512.  
  513.      ┌───┐
  514.      │ 3 │ Edit MSGAREA.CTL to your specifications.  MSGAREA.CTL is
  515.          └───┘ the file which defines your message areas.  Make sure to
  516.                specify correct paths, access levels, and to use the message
  517.                base type (Squish, JAM or *.MSG/Fido) which best suits your
  518.                needs.  And of course feel free to add or remove as many
  519.                message areas as you like; there can be up to 65,536 of
  520.                them!  See the chapter titled "Setting Up Message Areas" for
  521.                a complete explanation of this file.
  522.  
  523.      ┌───┐
  524.      │ 4 │ Edit FILEAREA.CTL to your specifications.  FILEAREA.CTL
  525.          └───┘ is the file which defines your file transfer areas.  As in
  526.                the message area file, make sure you specify all the right
  527.                paths and access levels.  Make sure all those paths exist
  528.                and that there is a FILES.BBS file in each one containing a
  529.                list of all the files in the area and their descriptions.
  530.                As with the message areas, there can be up to 65,536 file
  531.                areas!  See the chapter titled "Setting Up File Areas" for a
  532.                complete explanation of this file.
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.         NanoBBS 1.16 Documentation                              Page 09
  541.  
  542.      ┌───┐
  543.      │ 5 │ Edit DOORS.CTL to your specifications.  DOORS.CTL is the
  544.          └───┘ file which defines your "Doors" or external programs which
  545.                are accessible by the users.  Doors are usually games but
  546.                they can also be interfaces to special databases, "expert"
  547.                advisory systems, call-back verifiers, or have any number of
  548.                other functions.
  549.  
  550.          ┌───┐
  551.      │ 6 │ Type CONFIG NODE1 at the DOS prompt and hit Enter.  This
  552.          └───┘ will convert the four files I just described into a form
  553.                that is more readily usable by NanoBBS.  This process is
  554.                called "compiling configuration".  If you already have files
  555.                in the file areas you have defined, then you must also type
  556.                BBS /F at the DOS prompt to create the file area indexes
  557.                that allow your callers to find files for downloading.
  558.  
  559.  
  560.          ┌───┐
  561.      │ 7 │ Once this is complete, if all the paths are correct (and
  562.          └───┘ they all exist) you should be ready to go.  Note that the
  563.                paths do not HAVE to all be defined; NanoBBS will warn you
  564.                wherever it cannot find a specified path.  Now, just type
  565.                BBS at the prompt and go through the new-user login
  566.                procedure.  Make an account for yourself.  Most sysops
  567.                traditionally make the first account in the system theirs;
  568.                that makes you user 0 (zero).
  569.  
  570.      ┌───┐
  571.      │ 8 │ Try logging in; you should be able to navigate the system
  572.          └───┘ as a new user right away.  Hit Alt-E to enter the user
  573.                editor and give yourself SysOp access (the access and keys
  574.                you have defined in NODE1.CTL for SysOp access) or better!
  575.  
  576.                Don't be surprised if NanoBBS says it can't find your
  577.                message areas and that it's trying to create them.  This is
  578.                normal the first time out, or whenever the message areas
  579.                don't actually exist yet.
  580.  
  581.      ┌───┐
  582.      │ 9 │ If you're only going to run one node, you can skip this
  583.          └───┘ step. If you run more than one node, you can run multiple
  584.                copies in the same system directory (the directory specified
  585.                by the SYSPATH statement in NODE1.CTL) but each copy has to
  586.                have its own config file.  So, for example, if you are
  587.                running two nodes, you should make a copy of NODE1.CTL and
  588.                call it NODE2.CTL (Or use the NODE2.CTL that is included and
  589.                edit it to fit your needs).  Edit NODE2.CTL so that its node
  590.                number, com port and modem settings match those of your
  591.                second node, and compile it by typing:
  592.  
  593.             CONFIG NODE2 /Q
  594.  
  595.                at the DOS prompt.  The /Q tells CONFIG to ignore the
  596.                MSGAREA.CTL, FILEAREA.CTL and DOORS.CTL files as these can
  597.  
  598.  
  599.  
  600.         NanoBBS 1.16 Documentation                              Page 10
  601.  
  602.                be shared between the two nodes.  If you've just compiled
  603.                all these area files, you don't need to do it again until
  604.                you edit them.
  605.  
  606.                Repeat this procedure for as many nodes as you have.  If
  607.                your nodes are spread out across a LAN, make sure each one
  608.                specifies a local com port and that all the system and
  609.                similar paths point to the system directory on one central
  610.                machine.  Otherwise NanoBBS will start creating user log
  611.                files all over the LAN and the nodes won't be able to
  612.                communicate with each other.
  613.  
  614.         ┌────┐
  615.     │ 10 │ Now create the batch file(s) necessary to run the BBS.
  616.         └────┘ If you are running under DesqView or another multitasking
  617.                environment like OS/2, you should predefine special task
  618.                configurations for each node.  To run each node, you should
  619.                have a batch file for each one, and each node must be called
  620.                with a /C command line parameter specifying the compiled
  621.                configuration file that the node should use.
  622.  
  623.                This is all covered exhaustively in "The Black Art of Batch
  624.                Files", elsewhere in this manual.
  625.  
  626.     Once all of this is done, you should be able to run your BBS
  627.     reliably from your main BBS/Mailer batch file or by running your
  628.     multitasker (if its default macro calls the batchfiles for each
  629.     node).    You will, of course, want to customize the ASCII, ANSI
  630.     and RIP files in the MISC directory so that they reflect the
  631.     character and style of your BBS!
  632.  
  633.     ┌───────────────────────┐
  634.     │ COMMAND LINE SWITCHES │
  635.     └───────────────────────┘
  636.  
  637.     /F{filename.dat} builds the index files necessary for the speed
  638.        performance of NanoBBS's high-speed file finding functions.
  639.        Without running BBS /F, NanoBBS will still be able to find
  640.        files the old-fashioned way (by actually reading through
  641.        every line of the FILES.BBS files) but this process is much
  642.        slower. Once the index files are in place, NanoBBS will only
  643.        be able to find files which are listed in the indices.  This
  644.        means that newly-uploaded files won't be available until
  645.        BBS/F is run again. If you don't have a huge file section you
  646.        may be able to get away with running BBS /F each time NanoBBS
  647.        exits after each call, but on many systems this will take too
  648.        long and is better left to a nightly event.    The filename.dat
  649.        is the file name of the compiled file area file, usually
  650.        FILEAREA.DAT.
  651.  
  652.       If the filename is left off, the program assumes FILEAREA.DAT.
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.         NanoBBS 1.16 Documentation                              Page 11
  661.  
  662.         /R This builds a special version of MASTER.FIL called CDROM.FIL.
  663.            CDROM.FIL lists all the files in all the areas you have marked as
  664.           "CDROM".  While CDROM.FIL is not used directly by the BBS, it is
  665.           "imported" into MASTER.FIL when you run BBS /F.  This way, you
  666.           need only index the CD-ROMs once - saving a great deal of time
  667.           whenever you need to re-index the whole file base.  This feature
  668.           is extremely useful if you have many CD-ROM drives or if your
  669.           CD-ROM drives are slow.
  670.  
  671.           Each time you add or change CD's, update the file area config
  672.           file and recompile it with MFB.  Then run BBS /R to index the
  673.           CD-ROM areas.  Then run BBS /F to incorporate the CD-ROM areas
  674.           into the main MASTER.FIL.
  675.  
  676.      ┌─────────────────────────────────────────────────────────────┐
  677.      │ If your users report mysterious bogus files in a FILES.BBS  │
  678.      │ listing, especially at the beginning, this is an indication │
  679.      │ that the File Indices have fallen out of sync with the      │
  680.      │ FILES.BBS.  The solution is to run BBS /F.               │
  681.      └─────────────────────────────────────────────────────────────┘
  682.  
  683.     /E Invokes the user editor.
  684.  
  685.     /T{time} indicates to NanoBBS that the mailer needs to be back
  686.       online in {time} minutes - this is used to force mail events.
  687.       If necessary, NanoBBS will adjust the user's time online and
  688.           advise her accordingly.
  689.  
  690.         /C{config.ext} will cause NanoBBS to load the compiled config file
  691.           specified.  If this is omitted, NODE1.DAT is assumed.  If no
  692.           extension is provided, .DAT is assumed.  So, BBS /Cnode2 would
  693.           run the BBS using NODE2.DAT which contains the parameters of
  694.           NODE2.CTL.
  695.  
  696.     /W causes NanoBBS to wait for a caller.
  697.  
  698.         /A causes NanoBBS to go into "NanoWatch" - a multi-node status
  699.            monitor.  From NanoWatch you can monitor the activity of up to
  700.            20 nodes, or log in locally with Alt-L, or enter the user editor
  701.            with Alt-E.
  702.  
  703.     /B specifies a baud rate.  This is used when passing off from a
  704.        mailer or other front end.  You should have a SPAWN.BAT or
  705.        similar batch file generated by your mailer which specifies,
  706.        among other things, this baud rate.    When this switch is
  707.        used, the connection is assumed already made and the BBS goes
  708.            directly to the logon procedure.
  709.  
  710.         If neither the /A or /B or /W switches are used, NanoBBS assumes
  711.         this means it is a local session - it will not use the modem at
  712.         all, but will get its input solely from your keyboard and will send
  713.         its output solely to your monitor.
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.         NanoBBS 1.16 Documentation                              Page 12
  721.  
  722.         ╔═╦════════════════════════╦═╗
  723.     ║ ║ The Configuration File ║ ║
  724.     ╚═╩════════════════════════╩═╝
  725.  
  726.     COMPILING THE CONFIGURATION FILE
  727.  
  728.     NanoBBS uses a flat ASCII text file for system configuration, as
  729.     this approach provides the greatest flexibility and the ability
  730.     to add comments, so that you can rationalise your choices later.
  731.  
  732.     By default, NanoBBS uses the file NODE1.DAT - referring to the
  733.     fact that by default NanoBBS is node 1 of a multi-user system,
  734.         even if your BBS has only one line.
  735.  
  736.         To create NODE1.DAT, you must first compile NODE1.CTL with the
  737.         CONFIG.EXE program.  CONFIG reads the configuration file, line by
  738.         line, and compiles the text file into a fast machine-readable file
  739.         format and writes it out to a .DAT file.
  740.  
  741.     To make multiple nodes you need a config file for EACH node.
  742.     So, for example, if you have two nodes, you would first edit
  743.     NODE1.CTL to your specifications for Node 1, including the com
  744.     ports and the external events you want that node to process.
  745.     Then, make a copy of NODE1.CTL, and name the copy NODE2.CTL.
  746.     Now edit NODE2.CTL to the parameters required for Node 2,
  747.     including the com port, baud rate and so forth.
  748.  
  749.         Once this is complete, you must then run the CONFIG program once
  750.     for each config file.  It is worth noting that you can save some
  751.     time by only doing a "full" config on one node.  Allow me to
  752.     illustrate:
  753.  
  754.         C:\>config node1
  755.  
  756.         C:\>config node2 /q
  757.  
  758.     If you type these two commands at the dos prompt, CONFIG.EXE
  759.     will first compile NODE1.CTL into NODE1.DAT, and will also
  760.     configure the message area files, file area files and door
  761.     configuration files by calling the MMB.EXE, MFB.EXE and
  762.     MAKEDOOR.EXE programs for you.    The second command just compiles
  763.     NODE2.CTL into NODE2.DAT.  The /q parameter tells CONFIG.EXE not
  764.     to bother compiling the file areas and other files a second
  765.     time, which is unnecessary when these files are to be shared
  766.     between nodes - the normal multi-node operating mode.
  767.  
  768.  
  769.     SYNTAX OF THE CONFIGURATION FILE
  770.  
  771.     The configuration file itself is a plain ASCII text file with
  772.     one command per line.  "Commented" lines are ignored, as are
  773.     blank lines and lines which start with unrecognised words.  The
  774.     best way to comment out a line is to start the line with a
  775.     semicolon ";".  Several options (like WIDEOPEN) come commented
  776.     out by default; to activate such options you have to "uncomment"
  777.     them by deleting the leading semicolon.  The commands are not
  778.  
  779.  
  780.         NanoBBS 1.16 Documentation                              Page 13
  781.  
  782.         case sensitive, but take care to type the text parameters (such
  783.     as the BBS name in the SYSTEMNAME line) exactly as you want
  784.         users to see them.
  785.  
  786.     Examples:
  787.  
  788.     ;This line is commented out.
  789.     This line is not.
  790.  
  791.     The sample configuration file is commented with explanations of
  792.     those commands which I do not consider self-evident, but I will
  793.     explain each one in depth here.  I'll include at least one
  794.     example for each one.
  795.  
  796.         ┌─────────────────────────────────────────────────────────────┐
  797.     │            General System Options              │
  798.     └─────────────────────────────────────────────────────────────┘
  799.  
  800.     The NODE parameter specifies which node number the BBS will use
  801.     for multi-user functions such as NanoCHAT.  If you are running a
  802.     one-line BBS this should be set to 1.
  803.  
  804.     Node        1
  805.  
  806.  
  807.     The SYSTEMNAME parameter is the name of your BBS as you want it
  808.     passed to doors in the DORINFO1.DEF file, and in other places
  809.     yet to be supported...
  810.  
  811.     SystemName    Whirlwind BBS
  812.  
  813.  
  814.     The SYSTEMCITY parameter is the location of your BBS; this
  815.     should be the city and state or country it is located in, e.g.
  816.     "Victoria, B.C." or "Peoria, Illinois" or "Paris, France".
  817.  
  818.     SystemCity    Victoria, B.C.
  819.  
  820.  
  821.     The SYSTEMPHONE parameter is your BBS's phone number.  If you're
  822.     running a multi-line BBS with more than one phone number, I see
  823.     no reason why you can't have a different number for each node.
  824.  
  825.     SystemPhone    604-361-4549
  826.  
  827.  
  828.     The SYSOP parameter is your name (or pseudonym).  This is the
  829.     name to which Feedback or and private message to "SYSOP" will be
  830.     addressed.  It is also used by the DORINFO1.DEF door file.
  831.  
  832.     Sysop        Tommy
  833.  
  834.  
  835.         The SHOWUPLOADER parameter tells NanoBBS to include the name of
  836.         the person who uploaded a file in that file's description. If the
  837.         SHOWUPLOADER keyword is commented out, NanoBBS will not
  838.  
  839.  
  840.         NanoBBS 1.16 Documentation                              Page 14
  841.  
  842.         automatically append the line "Uploaded By: {UserName}" to file
  843.         descriptions that are uploaded by users.  By default this feature
  844.         is ON, i.e. users get public notice for uploads.  This is a
  845.         GoodThing(tm) since it encourages uploading.
  846.  
  847.         showuploader
  848.  
  849.  
  850.         This is the definition of the "Spinny Cursor" used in long
  851.     message searches.  This example gives a classic "twirling stick"
  852.     spinning cursor which rotates counter-clockwise.  This can be up
  853.     to 16 characters long.
  854.  
  855.     Spin        \-/|
  856.  
  857.  
  858.     This determines whether you want to enable multi-user chat
  859.     features.  This should be commented out if you are running a
  860.     1-line system or if you do NOT want to use multi-node chat!
  861.  
  862.     MultiNode
  863.  
  864.         ┌─────────────────────────────────────────────────────────────┐
  865.     │              Paths and Filenames              │
  866.     └─────────────────────────────────────────────────────────────┘
  867.  
  868.     The SYSPATH is the path to the BBS executables, language files,
  869.         user log, and all miscellaneous system files.  The INSTALL.EXE
  870.         may automatically change this (and several other paths derived
  871.         from it) to the one you select when you first install NanoBBS.
  872.         Note; if this is missing the BBS will try to read everything
  873.         from the directory where the executable lives.  I have not
  874.         tested this eventuality extensively but it does seem to work for
  875.         me, however I wouldn't recommend relying on it.  Use this
  876.         parameter!
  877.  
  878.     SysPath     C:\BBS\
  879.  
  880.  
  881.     This is the path to the .ASC, .ANS, .RIP and compiled UFO (.BBS)
  882.     files.    It is also the path to the NanoCHAT help files and the
  883.     NanoCHAT /m and /i info files and messages.
  884.  
  885.     TextPath    C:\BBS\MISC\
  886.  
  887.  
  888.     The SWAPPATH is the path to a directory where you want Swapping
  889.     files to go.  Each time NanoBBS runs a door or other external
  890.     program such as an archiver, it tries to swap itself out to EMS
  891.     (if the SwapEMS parameter is active) or to disk.  This sets the
  892.     path for disk swaps.  If you have enough memory but not EMS, use
  893.     a RAM disk - it is still much faster than swapping to disk!
  894.  
  895.     SwapPath    F:\
  896.  
  897.         SwapEMS
  898.  
  899.  
  900.         NanoBBS 1.16 Documentation                              Page 15
  901.  
  902.         This is the path to the IPC files.  If you don't use multi-user
  903.     chat you needn't concern yourself with this, however if you do,
  904.         then this should DEFINITELY be a RAM disk or a directory
  905.     thereof!
  906.  
  907.     IPCPath     F:\
  908.  
  909.  
  910.     The TEMPPATH is a directory where files from a CD-ROM are copied
  911.     to before downloading.    Most CD-ROMs are very slow compared to
  912.     hard drives, so the user will find downloads faster and you will
  913.     run less risk of file sharing problems if CD-ROM downloads are
  914.     copied to a temporary disk directory and downloaded from there
  915.     instead.  If you're running a multi-node BBS, you should have a
  916.     separate TEMPPATH for each node on your system.  This is because
  917.     the BBS deletes the entire contents of the temporary directory
  918.     after each logoff, to avoid filling your hard disk with files
  919.     from the CD.
  920.  
  921.     TempPath    C:\TEMP1\
  922.  
  923.         The SCANPATH is the path to the individual user scan files.
  924.     NanoBBS lets users select which message areas to include in QWK
  925.     packets and global new-scans, and stores the list of included
  926.     areas in a file for each user.    Since a great many users could
  927.     end up using this feature, a separate directory is necessary for
  928.     these Scan files.
  929.  
  930.     ScanPath    C:\BBS\MSGSCAN\
  931.  
  932.         NanoBBS allows you to completely build a BBS from scratch in the
  933.         UFO scripting language.  Prior to version 1.11, this was
  934.         accomplished (and largely under-documented) by placing UFO
  935.         tokens in the LOGO and WELCOME files, bypassing the standard
  936.         canned interface.
  937.  
  938.         Starting with version 1.11, NanoBBS now supports two UFO files
  939.         which actually override the logon process and the canned main
  940.         menu (from which all other canned functions are launched).  The
  941.         STARTFILE is intended to replace the logon procedure: it should
  942.         contain keywords to first identify your BBS and greet the user,
  943.         and then prompt for a username and a password, followed by a
  944.         [loguser] keyword to actually log the user on.  You can invoke
  945.         the canned logon procedure from here or the canned new-user
  946.         questionnaire (see UFO.DOC for information on the keywords
  947.         needed to accomplish this) or use UFO to write completely
  948.         original logon protocols!  Similarly, the MAINFILE replaces the
  949.         Main Menu.  It is called right after the logon procedure (or the
  950.         STARTFILE if you're using one).  The MAINFILE might be something
  951.         as simple as a data "answering machine" in which the only option
  952.         is sysop feedback, or it could be a totally custom full-featured
  953.         BBS, making use of canned features and your own custom versions
  954.         as you see fit!
  955.  
  956.         If these keywords are active, the files are used, otherwise
  957.         NanoBBS uses the canned equivalents.  If you want to run a
  958.  
  959.  
  960.         NanoBBS 1.16 Documentation                              Page 16
  961.  
  962.         canned NanoBBS, leave these commented out!
  963.  
  964.         StartFile matrix.bbs
  965.         MainFile  mainmenu.bbs
  966.  
  967.     ┌─────────────────────────────────────────────────────────────┐
  968.     │              Modem Configuration              │
  969.     └─────────────────────────────────────────────────────────────┘
  970.  
  971.         You can embed special functions in all the modem commands.  In the
  972.         modem strings below, "|" (pipe) means carriage return, "~" (tilde)
  973.         means delay 1 second, "'" (apostrophe) means delay 1/20 second, "^"
  974.         (caret) means DTR up and "v" means DTR down...
  975.  
  976.         The COMPORT parameter specifies the com port, e.g. 1 for COM1:. It
  977.         goes without saying that this should be different for each node.
  978.         If this is set to 0 only local logons will be possible.
  979.  
  980.     ComPort     1
  981.  
  982.         SLOWBAUD is the slowest baud rate allowed.  I run a pretty
  983.         easygoing system so I allow all baud rates, but you may not want
  984.         slower modems tying up your shiny new V.34, so you can set a
  985.         minimum (say, 2400 or 9600) using this command.  If this command is
  986.         commented out, all baud rates are allowed.  This example allows
  987.         baud rates as low as 300.
  988.  
  989.     SlowBaud    300
  990.  
  991.         INITBAUD is the "default" baud rate; it is the baud rate to
  992.         initialise the modem and wait for a call.
  993.  
  994.     InitBaud    38400
  995.  
  996.         INIT is simply the string to initialise the modem.  If your modem
  997.         has an NV-RAM feature and is properly configured you should only
  998.         need to use "ATZ|".  This example does just that but also forces
  999.         the speaker off.  Consult your modem manual for an explanation of
  1000.         its commands!
  1001.  
  1002.     Init        ATZ|~ATM0|
  1003.  
  1004.           Here's a modem init string which you might find suitable if your
  1005.           modem doesn't have an NV-RAM.  In order of appearance, its
  1006.           function is to: Turn the speaker off, turn on "echoing" of modem
  1007.           commands, set verbose result code reporting, turn on normal
  1008.           carrier detection (many modems default to "carrier detect ON all
  1009.           the time no matter what the real carrier state is"), and set the
  1010.           modem to hang up if DTR is dropped.
  1011.  
  1012.       Init          ATM0E1X4&C1&D2|
  1013.  
  1014.     INITRETRY is the number of times to attempt initialisation
  1015.     before returning a "Can't initialise the modem" error.
  1016.  
  1017.     InitRetry    5
  1018.  
  1019.  
  1020.         NanoBBS 1.16 Documentation                              Page 17
  1021.  
  1022.     RING is the string returned by the modem when the line rings.
  1023.     When NanoBBS detects this string from the modem while it's
  1024.     waiting for a call, it gets ready to answer the phone...
  1025.  
  1026.     Ring        RING|
  1027.  
  1028.         RINGS is the number of rings to wait before answering - 1 will
  1029.         answer on the first ring etc.  If you have Caller ID this MUST be
  1030.         set to 2 or more, so that the CID data stream can come through.
  1031.         Otherwise 1 is the best choice for most direct dial-in lines.
  1032.  
  1033.     Rings        2
  1034.  
  1035.     ANSWER is the command to send to the modem to cause it to answer
  1036.     the phone.
  1037.  
  1038.     Answer        ATA|
  1039.  
  1040.     This is the string returned by modem when the modem has
  1041.     initialised OK.  When NanoBBS tries to initialise the modem it
  1042.     expects to get this string back; if it doesn't then there may be
  1043.     something wrong.
  1044.  
  1045.     OK        OK|
  1046.  
  1047.     NOCARRIER is the string returned by modem when an incoming
  1048.     call's connection fails before NanoBBS gets out of waiting-for
  1049.     caller mode.  If it receives this it will immediately go back to
  1050.     waiting for a call.
  1051.  
  1052.     NoCarrier    NO CARRIER|
  1053.  
  1054.         INITTIME is the number of minutes between each re-initialisation
  1055.     of the modem.  This should be done periodically just to make
  1056.     sure all is well with the modem.  Every 10 or 20 minutes is
  1057.     fine.
  1058.  
  1059.     inittime    10
  1060.  
  1061.         If uncommented, NOFOSSIL will force NanoBBS to not use a FOSSIL
  1062.         even if one is loaded.  If you have a FOSSIL loaded, NanoBBS will
  1063.         try to use it unless you use this keyword!  When this keyword is in
  1064.         effect, NanoBBS uses its own serial driver.
  1065.  
  1066.         nofossil
  1067.  
  1068.         The PORT keyword defines the address and IRQ of com ports used by
  1069.         the internal serial driver.  You can define ports 1 thru 16.  The
  1070.         first parameter after PORT is the com port number (one-based!),
  1071.         followed by the hexadecimal port address, followed in turn by the
  1072.         IRQ.  The defaults are given here.  I do not recommend using COM5
  1073.         and up with these defaults, and you should check the hardware
  1074.         settings for COM3 and COM4 carefully before you use this table
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.         NanoBBS 1.16 Documentation                              Page 18
  1081.  
  1082.         as-is.  These settings are only used by NanoBBS's internal comm
  1083.         routines and have no effect if you are using a FOSSIL.
  1084.  
  1085.         Port 1 03F8 4
  1086.         Port 2 02F8 3
  1087.         Port 3 03E8 4
  1088.         Port 4 02E8 3
  1089.         Port 5 0000 0
  1090.         Port 6 0000 0
  1091.         Port 7 0000 0
  1092.         Port 8 0000 0
  1093.         Port 9 0000 0
  1094.         Port 10 0000 0
  1095.         Port 11 0000 0
  1096.         Port 12 0000 0
  1097.         Port 13 0000 0
  1098.         Port 14 0000 0
  1099.         Port 15 0000 0
  1100.         Port 16 0000 0
  1101.  
  1102.     ┌─────────────────────────────────────────────────────────────┐
  1103.     │             Baud Rate Definitions              │
  1104.     └─────────────────────────────────────────────────────────────┘
  1105.  
  1106.  
  1107.     In the baud rate definitions, the SET parameter selects the baud
  1108.     rate to reset the modem port to upon connection (this should be
  1109.     set to your locked baud rate for all bauds if your port is
  1110.     locked).  The RATE parameter determines the rate used for
  1111.     calculating transfer times etc., the DISPLAY parameter is the
  1112.     rate as shown to the user, and the CONNECT parameter is the
  1113.     modem response string by which NanoBBS can recognise the baud
  1114.     rate.
  1115.  
  1116.         There should be one baud rate defined for each one that your
  1117.     modem supports.  For example, a 2400 baud modem should be set up
  1118.     to recognize 300, 1200 and 2400 baud callers, even if you won't
  1119.     be allowing 300 baud.  In fact, especially if you won't be
  1120.     allowing 300 baud; after all you want the BBS to be able to tell
  1121.     the prohibited baud rates when it sees them!
  1122.  
  1123.     Each baud rate is defined with a BAUD parameter followed by
  1124.     several subparameters and then terminated with an END.    The
  1125.     following examples illustrate:
  1126.  
  1127.     Baud 0
  1128.                 Set     0
  1129.         Rate    300
  1130.         Display 300
  1131.         Connect CONNECT|
  1132.     end
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.         NanoBBS 1.16 Documentation                              Page 19
  1141.  
  1142.         Baud 1
  1143.                 Set     0
  1144.         Rate    1200
  1145.         Display 1200
  1146.         Connect CONNECT 1200|
  1147.     end
  1148.  
  1149.     Baud 2
  1150.                 Set     0
  1151.         Rate    2400
  1152.         Display 2400
  1153.         Connect CONNECT 2400|
  1154.     end
  1155.  
  1156.         Baud 3
  1157.                 Set     0
  1158.         Rate    4800
  1159.         Display 2400
  1160.         Connect CONNECT 2400/MNP5
  1161.     end
  1162.  
  1163.     ; and so on until...
  1164.  
  1165.     Baud 11
  1166.                 Set     0
  1167.         Rate    28800
  1168.         Display 28800
  1169.         Connect CONNECT 28800
  1170.     end
  1171.  
  1172.     ; The sample NODE1.CTL has all the baud rate definitions needed
  1173.     ; by a system served by a 28800 V.FC modem.
  1174.  
  1175.         ┌─────────────────────────────────────────────────────────────┐
  1176.     │             Time Limits                  │
  1177.     └─────────────────────────────────────────────────────────────┘
  1178.  
  1179.         USRSTART is the starting time of the period when NanoBBS will
  1180.     answer the phone.  This and USREND are useful for part-time
  1181.     BBSes.    USREND is the ending time; after this NanoBBS will
  1182.     indicate that the phone has rung but will not answer.  If these
  1183.     times are the same, then users are always allowed.
  1184.  
  1185.     UsrStart    00:00
  1186.     UsrEnd        00:00
  1187.  
  1188.  
  1189.     PAGESTART and PAGEEND define the starting and ending times when
  1190.     users will be allowed to make noise on your speaker by paging
  1191.     you.  Outside these hours, the user will still be allowed to
  1192.     page, will still be asked for a reason, will still be logged,
  1193.     and the blinking "Paged" will still appear on the SysOp bar, but
  1194.     no sound will be made!    Very useful for sysops who have to sleep
  1195.     in the same room with the computer!
  1196.  
  1197.     PageStart    08:00
  1198.     PageEnd     23:00
  1199.  
  1200.         NanoBBS 1.16 Documentation                              Page 20
  1201.  
  1202.     LOGONTIME is the amount of time given to users to complete a
  1203.     logon after connection.  This is in minutes.
  1204.  
  1205.     LogonTime    10
  1206.  
  1207.         TIMEOUT is the number of minutes NanoBBS should wait at a prompt
  1208.     without any keyboard input from the user before it "times out"
  1209.     and terminates the session.
  1210.  
  1211.     Timeout     3
  1212.  
  1213.  
  1214.     These are the maximum numbers of minutes which can be deposited
  1215.     and withdrawn from the time bank.
  1216.  
  1217.     max withdraw 60
  1218.     max deposit 60
  1219.  
  1220.  
  1221.         This keyword will cause NanoBBS to freeze the timer during
  1222.         message posting.
  1223.  
  1224.         post freeze
  1225.  
  1226.  
  1227.         This will include private messages and feedbacks when rewarding
  1228.         for posts.  The POST FREEZE directive must also be active for
  1229.         this to have an effect.
  1230.  
  1231.         post reward private
  1232.  
  1233.  
  1234.         This keyword specifies the parameters for post rewards.  The
  1235.         first number is the number of minutes to award for a short
  1236.         message.  The second number is the number of minutes to award
  1237.         for a long message.  The third number is the number of lines for
  1238.         a message to count as "long".
  1239.  
  1240.         This example gives a reward of 5 minutes online time for a post
  1241.         1 to 7 lines long, and 10 minutes for a post 8 lines or longer.
  1242.  
  1243.         post reward 5 10 8
  1244.  
  1245.  
  1246.  
  1247.         ┌─────────────────────────────────────────────────────────────┐
  1248.     │               Security                  │
  1249.     └─────────────────────────────────────────────────────────────┘
  1250.  
  1251.     With all the competition out there on the BBS software market to
  1252.     have the most iron-fisted security, I thought it would be a nice
  1253.     complement to the security features to include an optional
  1254.     "UnSecurity" feature.  By default it is commented out.
  1255.  
  1256.     The WIDEOPEN token will cause NanoBBS to skip the user logon
  1257.     process in the canned startup.    You must use a logon UFO token
  1258.  
  1259.  
  1260.         NanoBBS 1.16 Documentation                              Page 21
  1261.  
  1262.         to log users on or else all posts and log entries will be for
  1263.     user #0 "???".  In the default file this is commented out, as in
  1264.         this example.
  1265.  
  1266.     ;WideOpen
  1267.  
  1268.  
  1269.     The NUP is the New User Password.  If it is uncommented this
  1270.     password will be required for all new callers to be able to
  1271.     register as a new user.  This is useful for invitation-only
  1272.     private systems.  Since most BBSes are public, this option is
  1273.     "commented out" by default.
  1274.  
  1275.     ;NUP         PASS
  1276.  
  1277.  
  1278.     This is the system password.  It can be used as a security
  1279.     adjunct to the regular user passwords but its usefulness is more
  1280.     important in applications where there is no actual user logon,
  1281.     such as in an AE or other anonymous environment or a
  1282.     fast-turnover information providing system such as would be used
  1283.     on a 1-800 line.  Used in conjunction with the WIDEOPEN
  1284.     parameter it can be used to create a very faithful emulation of
  1285.     AE.  If commented out it is not used.
  1286.  
  1287.     ;SysPass     CHANGEME
  1288.  
  1289.         The ECHOCHAR is the character echoed to the user when asking for
  1290.     a password.  This applies to passwords at logon as well as to
  1291.     passwords asked when changing passords.
  1292.  
  1293.     EchoChar    $
  1294.  
  1295.  
  1296.     PASSWORDTRIES is how many tries a user gets at entering a
  1297.     password before being logged off and hung up on.  To be fair to
  1298.     users, it should be at least 3 tries.
  1299.  
  1300.     PasswordTries    3
  1301.  
  1302.  
  1303.     This is the access level needed to use the ! prompt:
  1304.  
  1305.     Access Bang    20
  1306.  
  1307.  
  1308.     This is the access level given to new users:
  1309.  
  1310.     Access New    10
  1311.  
  1312.  
  1313.     This is the key set given to new users.  If commented out or if
  1314.     no keys are specified, then no keys are set for new users.  In
  1315.     this example, keys 1, 2, 5, A, and C are set.
  1316.  
  1317.     NewKeys     125AC
  1318.  
  1319.  
  1320.         NanoBBS 1.16 Documentation                              Page 22
  1321.  
  1322.  
  1323.  
  1324.         This is the access level needed to use various sysop functions.
  1325.  
  1326.     Access SysOp    5000
  1327.  
  1328.  
  1329.     And the SYSOPKEYS parameter is the key set needed to use SysOp
  1330.     functions.
  1331.  
  1332.     SysOpKeys    DEF
  1333.  
  1334.  
  1335.     This is the access level needed to get into the canned file
  1336.     section.
  1337.  
  1338.     Access Files    10
  1339.  
  1340.  
  1341.     This is the access level needed to get into the canned email
  1342.     menu.
  1343.  
  1344.     Access Email    10
  1345.  
  1346.  
  1347.         This is the access level needed to use the canned "read
  1348.     messages" menu option
  1349.  
  1350.     Access Read    10
  1351.  
  1352.  
  1353.     This is the access level needed to use the canned doors menu.
  1354.  
  1355.     Access Doors    10
  1356.  
  1357.  
  1358.     This is the access level needed to list today's calls.
  1359.  
  1360.     Access Todaylist 10
  1361.  
  1362.  
  1363.     This is the access level needed to list users.
  1364.  
  1365.     Access Userlist 10
  1366.  
  1367.  
  1368.     This is the access needed to use the batch files menu.
  1369.  
  1370.     Access Batch    10
  1371.  
  1372.  
  1373.     This is the access needed to access NanoCHAT.
  1374.  
  1375.     Access Chat    10
  1376.  
  1377.  
  1378.  
  1379.  
  1380.         NanoBBS 1.16 Documentation                              Page 23
  1381.  
  1382.         This is the string used instead of the user's name when s/he
  1383.     posts anonymously. This can be up to 36 characters and may
  1384.         include embedded colours.
  1385.  
  1386.     anonymous    ~E<~M<~O< ~PAnonymous ~O>~M>~E>
  1387.  
  1388.         The HIDESYSOP keyword is used by itself.  When present, it
  1389.         instructs NanoBBS to "hide" logons by the sysop in both the
  1390.         callers-today list and the daily totals.  The fact of the logon
  1391.         is still recorded in the NANOBBS.LOG and is also recorded in
  1392.         SECURITY.LOG.  Off the record, this was added when the author
  1393.         noticed that he was inflating the daily call count by a factor of
  1394.         two during a brief period where he was cheating at a certain door
  1395.         game <grin>.
  1396.  
  1397.         hidesysop
  1398.  
  1399.     The NEW keywords define which new-user questions will be asked,
  1400.     and which ones will be "optional".  Note that there is no real
  1401.     privacy justification for making the technical questions (lines,
  1402.     columns, ANSI, editor, language) optional so the option setting
  1403.     for those will be ignored by NanoBBS: either they're asked or
  1404.     they're not.
  1405.  
  1406.         .-----------------------------------------------------------------.
  1407.         | A little explanation: in most other BBS software, all of the    |
  1408.         | new-user questions are mandatory - the user has to answer each  |
  1409.         | question in order to proceed to the next and may not skip any.  |
  1410.         | This fact is annoying to some sysops, particularly those of     |
  1411.         | NirvanaNet(tm), a small FTN made up of "open systems" which the |
  1412.         | author briefly belonged to.  To paraphrase their policy, if     |
  1413.         | your BBS software doesn't support making questions like phone   |
  1414.         | number, age and address optional or nonexistent, then you're    |
  1415.         | expected to abandon it in favour of one that does.  So, these   |
  1416.         | keywords were created to fill that need.  I may not be in       |
  1417.         | NirvanaNet(tm) anymore, but my software is NirvanaNet(tm)       |
  1418.         | friendly!                                                       |
  1419.         |                                     -=( Tommy )=-               |
  1420.         `-----------------------------------------------------------------'
  1421.  
  1422.         Valid options are DONTASK and OPTION.  If a question is not
  1423.     present or commented out, it is both asked and required.  By
  1424.     default, all of these are commented out, so that NanoBBS asks
  1425.     all of the questions and requires answers to all of them.  This
  1426.     is the behavior of most other BBS programs.
  1427.  
  1428.     ; new realname option
  1429.     ; new location option
  1430.     ; new phone option
  1431.     ; new birthdate option
  1432.     ; new sex option
  1433.     ; new screen dontask
  1434.     ; new editor dontask
  1435.     ; new chknew dontask
  1436.     ; new language dontask
  1437.  
  1438.  
  1439.  
  1440.         NanoBBS 1.16 Documentation                              Page 24
  1441.  
  1442.         This is the message area number of the default private message
  1443.         area.  This is the message area to which Feedback is saved, where
  1444.         the BBS checks for new mail (if the user is set to check for mew
  1445.         mail at logon), and where the E-Mail area operates.  By default it
  1446.         is 0 (zero) but there is no reason why it couldn't be set to some
  1447.         other area number.  Make sure this area exists in your MSGAREA.CTL.
  1448.  
  1449.     Private     0
  1450.  
  1451.         Uncomment this if you want credits to be deducted for time online
  1452.         If this is uncommented NanoBBS will behave like online services
  1453.         that charge by time online... The actual credit consumption rate is
  1454.         defined in LIMITS.CTL.  Most BBSes do not need to uncomment this!
  1455.  
  1456.     ; Credit
  1457.  
  1458.         This is the "ratio threshold", or how much a user can download
  1459.         without uploading, before NanoBBS starts to enforce download:upload
  1460.         ratio limits.  It is in kilobytes, so in this example a new user
  1461.         could download a total of up to 500 kilobytes before her file
  1462.         ratios are even checked.
  1463.  
  1464.     Threshold    500
  1465.  
  1466.         This sets the amount of time, in percent, to give back to a user
  1467.         who has just successfully completed an upload.  It is a percentage
  1468.         of the actual time spent uploading.  A ULReward of 100 gives back
  1469.         100% of the time spent uploading, or in other words the user will
  1470.         have as much time left after an upload as before the upload.  In
  1471.         this default example we give a somewhat generous 300% time reward
  1472.         for uploading.
  1473.  
  1474.     ULReward    300
  1475.  
  1476.         Normally, when a user uploads, the BBS gives the user an extra time
  1477.         reward immediately.  However, you can set the BBS to deposit this
  1478.         credit to the user's time bank by using the BANKUPLOAD keyword.
  1479.         This will give you some control over the use/abuse of the upload
  1480.         credit.
  1481.  
  1482.         BankUpload
  1483.         
  1484.         This is the amount of time (in milliseconds) to wait for ANSI
  1485.         auto-detection.  If your system is very slow you may want to extend
  1486.         this. Otherwise, set it as low as you can get away with without
  1487.         causing NanoBBS to fail to detect ANSi.  A good default is about
  1488.         500 milliseconds.
  1489.  
  1490.     AutoANSi    500
  1491.  
  1492.         This is the number of seconds the user should have left when
  1493.         NanoBBS issues its first warning that the user is running out of
  1494.         time.  It is entered in seconds, and in this example we have set it
  1495.         to 300 seconds, for a 5 minute first warning.
  1496.  
  1497.         Warn First      300
  1498.  
  1499.  
  1500.         NanoBBS 1.16 Documentation                              Page 25
  1501.  
  1502.     This is the number of seconds the user should have left when
  1503.     NanoBBS issues its second and final warning that the user is
  1504.     nearly out of time.  It is also in seconds, and this example of
  1505.     60 seconds provides a 1 minute final warning.
  1506.  
  1507.     Warn Final    60
  1508.  
  1509.     If this is uncommented (default) Nano will ask the user to hit
  1510.     Enter upon connection.    This is useful for when ANSi detection
  1511.     chronically fails due to slow modem responses.
  1512.  
  1513.     HitEnter
  1514.  
  1515.     ┌─────────────────────────────────────────────────────────────┐
  1516.     │               Languages                  │
  1517.     └─────────────────────────────────────────────────────────────┘
  1518.  
  1519.     You can have up to 32 languages.  Each language is identified by
  1520.     its base filename.  For example, the language ENGLISH would
  1521.     refer to a pair of files called ENGLISH.LNG and ENGLISH.LDX,
  1522.     which are the message text and index files for the ENGLISH
  1523.     language.  If the user has RIPScrip enabled, ENGLISH will refer
  1524.     to a different pair of files: ENGLISH.RNG and ENGLISH.RDX.
  1525.  
  1526.     NanoBBS needs to have a default language, so that it can display
  1527.     information before a user logs on.  This is set to ENGLISH by
  1528.     default.  ENGLISH is the only language file included with this
  1529.     version of NanoBBS, but third-party language files for other
  1530.     languages are encouraged.
  1531.  
  1532.     defaultlang    english
  1533.     language 1    english
  1534.     ;language 2     hoser
  1535.     ;language 3     abusive
  1536.     ;language 4     r0dent
  1537.     ;language 5     francais
  1538.     ;language 6     deutsch
  1539.  
  1540.  
  1541.         ┌─────────────────────────────────────────────────────────────┐
  1542.     │           Main Menu Command Overrides              │
  1543.     └─────────────────────────────────────────────────────────────┘
  1544.  
  1545.     You can add or redefine up to 100 keys in the canned main menu
  1546.     to activate UFO script files.  The UFO script files listed here
  1547.     must be found in the text file directory as specified above, and
  1548.     will have the .BBS extension appended automatically.  Do not
  1549.     include the extension or path here.
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.         NanoBBS 1.16 Documentation                              Page 26
  1561.  
  1562.         There are a couple of examples in the default NODE1.CTL file,
  1563.     and they are included here:
  1564.  
  1565.     ;
  1566.     ; Example:
  1567.     ;
  1568.     ; OVRKEY    !  MODBANG
  1569.     ;
  1570.     ; This example replaces the canned bang prompt with
  1571.         ; MODBANG.BBS.
  1572.     ;
  1573.     ; You can also deactivate a main menu option by setting its
  1574.     ; filename to NIL, like this:
  1575.     ;
  1576.     ; OVRKEY    D  NIL
  1577.     ;
  1578.     ; This deactivates the canned doors menu off the canned
  1579.     ; main menu.
  1580.     ;
  1581.  
  1582.         ┌─────────────────────────────────────────────────────────────┐
  1583.         │                  File Menu Command Overrides                │
  1584.     └─────────────────────────────────────────────────────────────┘
  1585.  
  1586.         FOVRKEY is like OVRKEY except that the keys override those in the
  1587.         canned File Section.  There can be up to 30 FOVRKEYs.  The example
  1588.         below displays the compiled UFO file IPLAQ.BBS when the user hits $
  1589.         at the file menu.
  1590.  
  1591.         FOVRKEY $ IPLAQ
  1592.  
  1593.         What is this feature useful for?  Well, if you wanted to run a
  1594.         custom file database door or a door for a CD-ROM which is not
  1595.         directly NanoBBS compatible, you can now make those things options
  1596.         from the file menu where they belong.
  1597.  
  1598.         To add a CD-ROM door to the file menu, take the following steps:
  1599.  
  1600.         [1] Set up the door according to the door's instructions.
  1601.  
  1602.         [2] Create an entry in DOORS.CTL for the door and compile it with
  1603.             MAKEDOOR.
  1604.  
  1605.         [3] Verify that the door works properly by entering it from the
  1606.             door menu.
  1607.  
  1608.         [4] Create a UFO script to call the door.  You may want to put in
  1609.             tokens to restrict the use of the door.  You will need to use
  1610.             the [rundoor] token to actually run the door.
  1611.  
  1612.         [5] Compile the UFO file.  Make sure it's in your misc directory!
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.         NanoBBS 1.16 Documentation                              Page 27
  1621.  
  1622.         [6] Edit your NODE1.CTL (and all other node config files!) to
  1623.             include the following entry:
  1624.  
  1625.                 FOvrKey # CDROMDOR
  1626.  
  1627.             The above example will display/run CDROMDOR.BBS when the user
  1628.             hits # at the file menu.
  1629.  
  1630.         [7] Run CONFIG NODE1 (and again for each other node config file).
  1631.  
  1632.         [8] You should now have a working CD-ROM door in your file menu!
  1633.  
  1634.     ┌─────────────────────────────────────────────────────────────┐
  1635.     │             QWK Parameters               │
  1636.     └─────────────────────────────────────────────────────────────┘
  1637.  
  1638.     This is the path where QWK packets are assembled, disassembled,
  1639.     uploaded and downloaded.  NOTE: This path should be unique to
  1640.     each node if you are running a multi-node system, or else some
  1641.     really weird crosslinks could occur if two users try to build
  1642.     QWK packets simultaneously...
  1643.  
  1644.     qwk path    c:\bbs\qwk\node1
  1645.  
  1646.  
  1647.     This is the base filename of QWK packets.  This can be up to 8
  1648.     characters.
  1649.  
  1650.     qwk bbsid    NANOBBS
  1651.  
  1652.  
  1653.     Here are the compression program definitions.  Although the
  1654.     external compression is mainly used by QWK, these same
  1655.     definitions are also used by the FILE_ID.DIZ extraction
  1656.     sub-system.
  1657.  
  1658.         The NAME is the archiver name as you want the user to see it,
  1659.     the Extension is the normal file extension by which files of
  1660.     that type are known.
  1661.  
  1662.     The ADD and EXTRACT commands must include the full path and .EXE
  1663.     or .COM extension in order to work.  Since the compression is
  1664.     (in this version) only used for QWK processing, the ADD command
  1665.     should (ideally) specify "move"ing files into the archive rather
  1666.     than simply adding them, and the EXTRACT command should
  1667.     (definitely!) specify overwriting existing files.
  1668.  
  1669.     The ID bytes are as follows: the fist numeric parameter is the
  1670.         number of bytes from the first one where we are to find a string
  1671.     of bytes equal to the remaining specified bytes.  0 means the
  1672.         first byte. -1 means the last byte in the file, -2 means the
  1673.     second to last and so on.  The remaining bytes are what the BBS
  1674.     searches for to identify the file type. A number of known
  1675.     archiver IDs are included in this sample file. You can specify
  1676.     up to 8 bytes to search for the ID.  Byte values are in vanilla
  1677.     decimal, no hex here!  There can be up to 16 compression
  1678.     programs defined, from 1 to 16.
  1679.  
  1680.         NanoBBS 1.16 Documentation                              Page 28
  1681.  
  1682.     The syntax of the compression definitions is as in these
  1683.     examples.  Start the definition with the COMPRESS command and
  1684.     the "slot" number for the compression definition.  After
  1685.     you've specified the name, extension, ID bytes and the add and
  1686.     extract commands, end the definition with END.
  1687.  
  1688.     compress 1
  1689.         name        PKWare's PKZip
  1690.         extension    ZIP
  1691.         add        c:\bin\pkzip.exe -m %a %f
  1692.         extract     c:\bin\pkunzip.exe -oe %a %f
  1693.         id        0 80 75 03 04
  1694.     end
  1695.  
  1696.     compress 2
  1697.         name        PKWare's PKZip - Maximum Compression!
  1698.         extension    ZIP
  1699.         add        c:\bin\pkzip.exe -ex -m %a %f
  1700.         extract     c:\bin\pkunzip.exe -oe %a %f
  1701.         id        0 80 75 03 04
  1702.     end
  1703.  
  1704.     {Several examples from the default NODE1.CTL are deleted here
  1705.     for brevity}
  1706.  
  1707.     compress 7
  1708.         name        Rahul Dhesi's ZOO
  1709.         extension    ZOO
  1710.         add        c:\bin\zoo.exe -m %a %f
  1711.         extract     c:\bin\zoo.exe -e:O %a %f
  1712.         id        0 90 79 79
  1713.     end
  1714.  
  1715.         If you're running a multi-line system, it might be a good idea to
  1716.         put the compression configuration keywords in a separate file
  1717.         called COMPRESS.CTL and then put an INCLUDE keyword in each of your
  1718.         node configuration files pointing to COMPRESS.CTL.  See the example
  1719.         below:
  1720.  
  1721.         Include Compress.Ctl
  1722.  
  1723.         ... this would take the place of all of the above if you have it
  1724.         all in a file called COMPRESS.CTL.  Effective with verion 1.14,
  1725.         NanoBBS actually comes configured this way.  You can move any part
  1726.         of the NanoBBS config file to another file by using Include
  1727.         directives.  This would be useful for just about any config
  1728.         information that is global - the same for every node.
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.         NanoBBS 1.16 Documentation                              Page 29
  1741.  
  1742.         ┌─────────────────────────────────────────────────────────────┐
  1743.     │            Internet Arcana               │
  1744.     └─────────────────────────────────────────────────────────────┘
  1745.  
  1746.     If your BBS is not in the Internet, you need not concern
  1747.     yourself with any of this.  Most of this is included for future
  1748.     expansion only.  While NanoBBS will write a valid RFC-1036
  1749.     header to messages where required, there is no other direct
  1750.     support for the Internet or for Usenet.  If you can get Internet
  1751.     running with these parameters using external programs, terrific!
  1752.     Otherwise, true internet support -is- forthcoming in a future
  1753.     version.
  1754.  
  1755.     If you use the RFC-1036 message header in any of your message
  1756.     areas, you should set all of these parameters to values which
  1757.     are valid for your system.
  1758.  
  1759.  
  1760.     This is the internet address of the system.  There should be no
  1761.     @ in this IF YOU HAVE NO DOMAIN ADDRESS COMMENT THIS OUT!
  1762.  
  1763.     ; internet address horse.hockey.bull.roar.com
  1764.  
  1765.     This is used to build Usenet RFC1036 path header info.
  1766.  
  1767.     ; internet machine thc
  1768.  
  1769.         This is the time zone definition.  The first parameter is
  1770.     timezone code as you want it displayed in RFC-1036 headers.  The
  1771.     second parameter is the offset in hours from UTC in standard
  1772.     time, and the third is the offset from UTC in daylight time.
  1773.     These latter two parameters are not yet used by NanoBBS.
  1774.  
  1775.     timezone PST -8 -7
  1776.  
  1777.     ┌─────────────────────────────────────────────────────────────┐
  1778.     │         Hooks to MFB, MMB and MAKEDOOR           │
  1779.     └─────────────────────────────────────────────────────────────┘
  1780.  
  1781.     These commands, if present, will call MMB.EXE, MFB.EXE or
  1782.     MAKEDOOR.EXE and conveniently compile those as well.  It also
  1783.     lets you specify the use of non-standard filenames for these
  1784.     files, allowing you to associate a different set of file and
  1785.     message areas to different config files.
  1786.  
  1787.     uses files    filearea.ctl
  1788.     uses message    msgarea.ctl
  1789.     uses doors    doors.ctl
  1790.  
  1791.  
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.         NanoBBS 1.16 Documentation                              Page 30
  1801.  
  1802.         ┌─────────────────────────────────────────────────────────────┐
  1803.     │                 EVENTS                  │
  1804.     └─────────────────────────────────────────────────────────────┘
  1805.  
  1806.     Here are the "event" definitions.  The first parameter is the
  1807.     absolute event record; it can be from 1 to 32.    The second
  1808.     parameter is the day of the week the event is scheduled to take
  1809.     place (or "all" if the event should take place every day) and
  1810.     the third is the time, it 24-hour format. The fourth parameter
  1811.     is the errorlevel NanoBBS should exit with, and the remainder of
  1812.     the line (up to 60 characters) is the name of the event.
  1813.  
  1814.     You can signal that an event is "forced" - a user's time online
  1815.     may be adjusted to ensure the event occurs on time - by placing
  1816.     a $ (dollar sign) as the first character of the name.  The
  1817.     CONFIG.EXE compiler will automatically strip this character for
  1818.     you.
  1819.  
  1820.     NanoBBS events have a unique feature: you can have up to 32
  1821.     unique times at which each event can execute.  Unlike most other
  1822.     BBSes, you can specify more than one time of day for each event
  1823.     to occur, and you can even have the same event occur several
  1824.     times in the same day if you desire!
  1825.  
  1826.     These are just examples; you should adjust the times, days,
  1827.     names and errorlevels to suit your system best.  See the chapter
  1828.     titled "The Black Art of Batch File Writing" for examples of how
  1829.     to use the errorlevels.
  1830.  
  1831.     Here are two nice normal events which occur once per night at
  1832.         the same time.  The first event is forced; a user online will
  1833.         have her time limit adjusted if the call is close enough to
  1834.         midnight!
  1835.  
  1836.     event 1 All 00:00 100 $Midnight Door Updates
  1837.     event 2 All 04:00 110 Nightly Maintenance
  1838.  
  1839.     Here is an event which occurs at 4:30am Thursday and 5:00am
  1840.     Sunday.  Note that on the second line the errorlevel and name are
  1841.     not needed.
  1842.  
  1843.     event 3 Thu 04:30 120 Semi-Weekly Maintenance
  1844.     event 3 Sun 05:00
  1845.  
  1846.     This event runs three times a day at 2:00am, 10:00am and 6:00pm.
  1847.  
  1848.     event 4 All 02:00 130 Galactic Empire Update (Thrice Daily!)
  1849.     event 4 All 10:00
  1850.     event 4 All 18:00
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.         NanoBBS 1.16 Documentation                              Page 31
  1861.  
  1862.         ┌─────────────────────────────────────────────────────────────┐
  1863.         │                      OTHER KEYWORDS                         │
  1864.     └─────────────────────────────────────────────────────────────┘
  1865.  
  1866.         If uncommented, the EMAILSCAN GLOBAL option will cause NanoBBS to
  1867.         search all the areas the user has defined for global scans when
  1868.         checking for new email at each logon.  By default (commented out)
  1869.         NanoBBS will only scan the defined private email base for new
  1870.         personal mail.
  1871.  
  1872.         emailscan global
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.         NanoBBS 1.16 Documentation                              Page 32
  1921.  
  1922.         ╔═╦══════════════════════════╦═╗
  1923.     ║ ║ Setting Up Message Areas ║ ║
  1924.     ╚═╩══════════════════════════╩═╝
  1925.  
  1926.     Message areas are defined in the MSGAREA.CTL file.  Like the
  1927.     system configuration file in the previous chapter, this is a
  1928.     flat ASCII file which can be edited with any ASCII text
  1929.     processor.
  1930.  
  1931.     Once you have edited MSGAREA.CTL to your needs, you must then
  1932.     compile the message base configuration file into the MSGAREA.DAT
  1933.     file which NanoBBS can more easily read.  This can be done in
  1934.     two ways.  The simplest is to run the CONFIG program as you did
  1935.     for the NODE1.CTL general config file.    Tbis will also compile
  1936.     the MSGAREA.CTL file.  The other way is to run the MMB.EXE
  1937.     program like so:
  1938.  
  1939.         MMB MSGAREA
  1940.  
  1941.     This compiles your MSGAREA.CTL into MSGAREA.DAT the same way
  1942.     that CONFIG.EXE did, because CONFIG actually calls MMB.EXE in
  1943.     the process of configuring everything.    However this way will
  1944.     only compile the message areas; file areas, doors and general
  1945.     configuration remain unaffected when you use MMB.
  1946.  
  1947.     Each message area is defined by a set of lines in the
  1948.     MSGAREA.CTL file.  The first line of each area's definition
  1949.     starts with MSGAREA and the area's number, and ends with END.
  1950.  
  1951.     ┌─────────────────┐
  1952.     │ A basic example │
  1953.     └─────────────────┘
  1954.  
  1955.     msgarea         1
  1956.         name        Ye Public Roaste
  1957.         type        squish
  1958.         public
  1959.         access        10
  1960.         path        c:\bbs\msg\public
  1961.     end
  1962.  
  1963.     In the above example, we are defining Message Area 1 (hence the
  1964.     first line).
  1965.  
  1966.     Its name is "Ye Public Roaste", as defined by the NAME command.
  1967.  
  1968.     It is a Squish type message base, as defined by the TYPE
  1969.     command.
  1970.  
  1971.     It is a public message area, as defined by the existence of the
  1972.     PUBLIC command.  This means that private messages are not
  1973.     possible in the area.
  1974.  
  1975.     The minimum access needed to use this area is 10, as defined by
  1976.     the ACCESS command.
  1977.  
  1978.  
  1979.  
  1980.         NanoBBS 1.16 Documentation                              Page 33
  1981.  
  1982.         The messages themselves are stored in the directory C:\BBS\MSG\,
  1983.     and the base filename of the Squish files for this base is
  1984.         PUBLIC.  This is defined by the PATH command. It is worth noting
  1985.     that in a Squish or JAM base, the base filename is included in
  1986.     the path.  That means that if the PATH is C:\BBS\MSG\PUBLIC and
  1987.     this is a Squish area, NanoBBS will use the following files:
  1988.  
  1989.         C:\BBS\MSG\PUBLIC.SQI
  1990.         C:\BBS\MSG\PUBLIC.SQD
  1991.         C:\BBS\MSG\PUBLIC.SQL
  1992.         and C:\BBS\MSG\PUBLIC.SQB
  1993.  
  1994.     A similar mechanism is used to define the base filename for JAM
  1995.     message areas.    However, for *.MSG areas this defines the full
  1996.     directory name where all of the message files live.  In *.MSG
  1997.     there is one file for every message, plus several auxiliary
  1998.     files (most notably the LASTREAD file) so each *.MSG area must
  1999.     be in its own directory to avoid a serious and acute
  2000.     crosslinking problem!
  2001.  
  2002.     ┌───────────────────────────────┐
  2003.     │ A real-world Echomail example │
  2004.     └───────────────────────────────┘
  2005.  
  2006.     msgarea         5
  2007.         name        Chatter Echo
  2008.         type        JAM
  2009.         path        c:\bbs\msg\chatter
  2010.         access        10
  2011.         postaccess    15
  2012.         realname
  2013.         echomail
  2014.         address     1:340/26
  2015.         Origin        NanoBBS in '95!  604-361-4549
  2016.         public
  2017.         qwkname     Chatter
  2018.         barricade
  2019.         censor
  2020.     end
  2021.  
  2022.     This is message area 5, named "Chatter Echo".  It is a JAM type
  2023.     area which lives in C:\BBS\MSG\ and its files start with the
  2024.     base filename CHATTER.    Users need access level 10 to use the
  2025.     message area but only users with access level 15 can post
  2026.     messages there.  This area will use the user's "Real Name"
  2027.     instead of the "User Name".  It is an echomail area - perhaps
  2028.     this is why you would want to force the use of a real name.  The
  2029.     Fidonet address used in the Origin line and elsewhere in the
  2030.     message is 1:340/26.  The origin line itself will read:
  2031.  
  2032.         * Origin: NanoBBS in '95!  604-361-4549 (1:340/26)
  2033.  
  2034.     This is a "Public" area, and it is subject to the Barricade file
  2035.     (see the section on miscellaneous external files).  When the
  2036.         user downloads messages from this area into a QWK packet, the
  2037.  
  2038.  
  2039.  
  2040.         NanoBBS 1.16 Documentation                              Page 34
  2041.  
  2042.         BBS will associate the name "Chatter" with the area in the QWK
  2043.         packet.  And, the Message Censor will be applied to all messages
  2044.     posted by your users in this area.
  2045.  
  2046.     ┌────────────────────────┐
  2047.     │ An example of a     │
  2048.     │ specialty message area │
  2049.     └────────────────────────┘
  2050.  
  2051.     msgarea         49
  2052.         name        Adult Network Ladies Only Base
  2053.         path        c:\bbs\msg\ladies
  2054.         access        20
  2055.         postaccess    20
  2056.         age        21
  2057.         type        Squish
  2058.         public
  2059.         femaleonly
  2060.         qwkname     LadiesOnly
  2061.     end
  2062.  
  2063.     This is Message Area 49, which as you can see is open only to
  2064.     women over 21 - and the BBS will enforce this for you!    Most
  2065.     BBSes do not have this possibility.
  2066.  
  2067.     ┌──────────────────────────────────────────────────────────┐
  2068.     │                               │
  2069.     │ There are several more examples in the MESSAGES.CTL file │
  2070.     │           that comes with NanoBBS.           │
  2071.     │                               │
  2072.     └──────────────────────────────────────────────────────────┘
  2073.  
  2074.     ────────────────────────────────────────────────────────────
  2075.  
  2076.     ┌────────────────────────────────────┐
  2077.     │ A complete listing of all of the   │
  2078.     │ available keywords for MSGAREA.CTL │
  2079.     └────────────────────────────────────┘
  2080.  
  2081.         INCLUDE {filename}- This tells MMB to open the specified
  2082.            filename and take its input from that file - or in other
  2083.            words, "include" it.
  2084.  
  2085.         MSGAREA {number} - Starts a message area definition.  Every
  2086.            message area starts with this.
  2087.  
  2088.         MSGAREA @NEXT - Starts a message area definition, gives the new
  2089.            area an area number one higher than the last one. Use this
  2090.            instead of an area number to auto-number your message areas
  2091.            (this makes inserting new ones in the middle a breeze!)
  2092.  
  2093.         MSGAREA @NEXT 10 - Starts a message area definition, gives the new
  2094.            area an area number 10 higher than the last one.  You can
  2095.            specify any number here.
  2096.  
  2097.  
  2098.  
  2099.  
  2100.         NanoBBS 1.16 Documentation                              Page 35
  2101.  
  2102.         NAME {Area Name} - Defines the message area's name as the user
  2103.            sees it.  This can be up to 60 characters long, and it may
  2104.            contain embedded colours!
  2105.  
  2106.         QWKNAME {Name}   - Defines the area name as it is seen in the
  2107.            user's QWK reader.  Due to a limitation of the .QWK standard,
  2108.            the QWKNAME must be 12 characters or less.  This in fact is
  2109.            the main reason why NanoBBS lets you define this name
  2110.            separately.
  2111.  
  2112.         NEWSGROUP {news.group} - Defines the Usenet Newsgroup (if any)
  2113.            associated with this message area.  This is just a usenet
  2114.            newsgroup name in a format like: comp.bbs.nanobbs This can be
  2115.            up to 80 characters in size.
  2116.  
  2117.         TYPE {type}      - Defines the message base type, either SQUISH,
  2118.            JAM or *.MSG.  Squish and JAM are the recommended types, with
  2119.            *.MSG included for completeness and backward compatibility.
  2120.  
  2121.         PATH {path}      - Defines what directory the area lives in. For
  2122.            Squish and JAM areas this also includes the base filename.
  2123.            If this is a *.MSG area, the .MSG and other files are in this
  2124.            directory.
  2125.  
  2126.         ATTACH PATH {path} - This defines the path where file attaches
  2127.            in this area will be stored.  If this path is not defined,
  2128.            file attaches will not be allowed.  File attaches are an
  2129.            advanced feature that lets users send each other files via
  2130.            your system.
  2131.  
  2132.  
  2133.         ATTACH ACCESS {ac} - This defines the access level needed to
  2134.            post file attaches to this area.  If the user doesn't have
  2135.            this access level or higher, s/he is never even asked if a
  2136.            file attach is wanted.  This option has no effect unless the
  2137.            ATTACH PATH is also defined.
  2138.  
  2139.     ACCESS {access}  - Defines the access needed to read messages.
  2140.  
  2141.     POSTACCESS {ac.} - Defines the access needed to post messages.
  2142.  
  2143.     PRIVATE      - Only private messages are allowed.
  2144.  
  2145.         PUBLIC           - Only public messages are allowed.  If neither
  2146.            this nor PRIVATE is used, the user is asked if the message
  2147.            should be private.
  2148.  
  2149.         RFC1036          - This causes an RFC-1036 Usenet message header
  2150.            to be prepended to the message text.  This is used in
  2151.            conjunction with external Usenet processors.
  2152.  
  2153.     AGE {age}     - Minimum age required for access to the area
  2154.  
  2155.     FEMALEONLY     - Only females may read or post to the area.
  2156.  
  2157.     MALEONLY     - Only males may read or post to the area.
  2158.  
  2159.  
  2160.         NanoBBS 1.16 Documentation                              Page 36
  2161.  
  2162.         READONLY         - This is a read-only area - only the sysop can
  2163.            post!  This may be somewhat redundant as it has the same
  2164.            effect as setting POSTACCESS to the sysop access level. This
  2165.            is useful for setting up an announcements area or a
  2166.            file-distribution area (using file attaches).
  2167.  
  2168.         ECHOMAIL         - This command simply indicates that this is a
  2169.            Fidonet echomail area, so that NanoBBS will attach the
  2170.            necessary Echomail information to the message when it is
  2171.            saved.
  2172.  
  2173.         NETMAIL          - This command simply indicates that this is a
  2174.            Fidonet netmail area, so that NanoBBS will attach the
  2175.            necessary Netmail information to the message when it is
  2176.            saved.
  2177.  
  2178.         ADDRESS {z:n/n.p}- The originating Fidonet type address for this
  2179.            area.  This is needed for all Echomail and Netmail areas.
  2180.            This is in the standard 4D format, examples: 1:340/26
  2181.            69:3601/1 89:688/13.2  64:819/17.12
  2182.  
  2183.     ORIGIN {OrgLine} - The text of the Origin Line for this area
  2184.  
  2185.     KLUDGE REALNAME  - The user's real name will be hidden in a ^A
  2186.            kludge line prepended to the message text.
  2187.  
  2188.     INTERNET EMAIL     - The area is intended for Internet email.
  2189.  
  2190.         INTERNET DIVERT {area} - If the user enters a To: that appears to
  2191.            be intended for an Internet address (the presence of @, period
  2192.            or exclamation point will trigger this), then NanoBBS will
  2193.            divert the message to the specified area number - if the user
  2194.            has access!
  2195.  
  2196.     KEYS {keys}     - The user key(s) required for access
  2197.  
  2198.     POSTKEYS {keys}  - The user key(s) required to post messages
  2199.  
  2200.     REALNAME     - Always post with the user's real name
  2201.  
  2202.     ANONYMOUS     - Allow anonymous posting
  2203.  
  2204.     CENSOR         - Use the built-in message censor in this area.
  2205.  
  2206.         BARRICADE        - This will enable a check of the barricade
  2207.            file MESSAGES.BAR before changing to this area.  If the user
  2208.            is barricaded from this area, this must be active in order
  2209.            for the barricade to work!
  2210.  
  2211.         END              - End the area's definition.
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.         NanoBBS 1.16 Documentation                              Page 37
  2221.  
  2222.         You may also demarcate message areas by content type, network
  2223.         affiliation or whatever criterion you like by grouping them
  2224.         together and partitioning them with dividers.  A divider is just a
  2225.         "break" in the area list.  You can put a divider anywhere between
  2226.         area definitions in the MSGAREA.CTL file.
  2227.  
  2228.         DIVIDER           - Start a divider definition (no parameters)
  2229.  
  2230.         DISPLAY           - Text to display in the divider (see SysMsg 340
  2231.            in the language file)
  2232.  
  2233.         FILENAME {name}   - Display filename specified by {name} instead of
  2234.            SysMsg 340
  2235.  
  2236.         MALEONLY
  2237.         FEMALEONLY
  2238.         AGE {age}
  2239.         ACCESS {access}
  2240.         KEYS {keys} - AGE, ACCESS, KEYS, MALEONLY and FEMALEONLY enable or
  2241.            suppress the divider in much the same way they do for message
  2242.            area definitions
  2243.  
  2244.         END               - End the divider's definition
  2245.  
  2246.         ╔═╦═══════════════════════╦═╗
  2247.     ║ ║ Setting Up File Areas ║ ║
  2248.     ╚═╩═══════════════════════╩═╝
  2249.  
  2250.     File areas are defined in the FILEAREA.CTL file.  Like the
  2251.     system configuration file and message area configuration file in
  2252.     the previous chapters, this is a flat ASCII file which can be
  2253.     edited with any ASCII text processor.
  2254.  
  2255.     Once you have edited FILEAREA.CTL to your needs, you must then
  2256.     compile the file area configuration file into the FILEAREA.DAT
  2257.     file which NanoBBS can more easily read.  This can be done in
  2258.     two ways.  The simplest is to run the CONFIG program as you did
  2259.     for the NODE1.CTL general config file.    Tbis will also compile
  2260.     the FILEAREA.CTL file.    The other way is to run the MFB.EXE
  2261.     program like so:
  2262.  
  2263.         MFB FILEAREA
  2264.  
  2265.     This compiles your FILEAREA.CTL into FILEAREA.DAT the same way
  2266.     that CONFIG.EXE did, because CONFIG actually calls MFB.EXE in
  2267.     the process of configuring everything.    However this way will
  2268.     only compile the file areas; message areas, doors and general
  2269.     configuration remain unaffected when you use MFB.
  2270.  
  2271.     Each file area is defined by a set of lines in the FILEAREA.CTL
  2272.     file.  The first line of each area's definition starts with
  2273.     FILEAREA and the area's number, and ends with END.
  2274.  
  2275.  
  2276.  
  2277.  
  2278.  
  2279.  
  2280.         NanoBBS 1.16 Documentation                              Page 38
  2281.  
  2282.         ┌─────────────────┐
  2283.     │ A basic example │
  2284.     └─────────────────┘
  2285.  
  2286.     FileArea        1
  2287.         access        10
  2288.         name        General Upload Files
  2289.         Download    c:\file\upload\
  2290.         Upload        c:\file\upload\
  2291.     end
  2292.  
  2293.     In this example, we are defining file area 1.  Its name is
  2294.     "General Upload Files" and the user must have access level 10 or
  2295.     above to use the area.    The FILES.BBS file and the actual files
  2296.     are in the C:\FILE\UPLOAD\ directory, and that is also where
  2297.     uploads are saved.  There is otherwise nothing special about
  2298.     this area.
  2299.  
  2300.         ┌──────────────────────────────────┐
  2301.     │ A slightly more involved example │
  2302.     └──────────────────────────────────┘
  2303.  
  2304.     FileArea        3
  2305.         access        20
  2306.         name        Naughty Adult Pictures
  2307.         download    c:\bbs\files\adult\
  2308.         upload        c:\bbs\files\screen\
  2309.         age        21
  2310.     end
  2311.  
  2312.     Note that in this example the DOWNLOAD and UPLOAD directories
  2313.     are different.    The files and the FILES.BBS file are in
  2314.     C:\BBS\FILES\ADULT\, but uploaded files are saved in
  2315.     C:\BBS\FILES\SCREEN\.  When a user uploads a file to this area,
  2316.     not only does the file end up in the UPLOAD directory, but any
  2317.     description the user enters for the file goes in a FILES.BBS
  2318.     located in the UPLOAD directory.  Also in this example, a lower
  2319.     age limit of 21 years is specified, and an access level of 20 is
  2320.     required.
  2321.  
  2322.     ┌───────────────────────┐
  2323.     │ Defining CD-ROM areas │
  2324.     └───────────────────────┘
  2325.  
  2326.     filearea 2001
  2327.         name    Alt Operating Sys.
  2328.         upload c:\file\upload\
  2329.         download g:\001a\
  2330.         access    10
  2331.         cdrom
  2332.         filesbbspath    c:\cdrom\001a\
  2333.     end
  2334.  
  2335.     In this example, area 2001 is on a CD.    Note that there are
  2336.     three different paths.    The DOWNLOAD path is the actual
  2337.     directory on the CD where the files reside.  The UPLOAD path is
  2338.  
  2339.  
  2340.         NanoBBS 1.16 Documentation                              Page 39
  2341.  
  2342.         where uploads go.  Of course, CD-ROMs are not writeable, so it
  2343.     is very important that you specify an upload path that is on a
  2344.     writeable disk!  The third path, FILESBBSPATH, is the location
  2345.     of the FILES.BBS file.    This is where the file names and
  2346.     descriptions are kept.    This feature is useful for allowing you
  2347.     to "remove" files from CD directories that you don't want users
  2348.     to access, or to allow you to change the description of a file
  2349.     on a CD.
  2350.  
  2351.     An alternative for CD-ROM areas is to use the NOUPLOADS keyword.
  2352.     Instead of shuttling uploads to some other directory, NOUPLOADS
  2353.     will actually refuse to accept an upload if the user is in a
  2354.     file area that has this keyword.  I think that it is much more
  2355.     user-friendly to allow users to upload regardless of the area
  2356.     they're logged to, using the UPLOADPATH keyword.
  2357.  
  2358.         Note the use of the CDROM keyword.  This instructs NanoBBS to
  2359.     first copy the requested file or files from the CD to a
  2360.         temporary directory (the one specified in your general config
  2361.     file) before downloading.  The files are then downloaded from
  2362.         the hard disk - or RAMdisk if you're fortunate enough to have one
  2363.     large enough to practically handle this job.  This greatly
  2364.     reduces the overhead caused by CD-ROM accesses.
  2365.  
  2366.     ┌────────────────────────────────────────────────────────────┐
  2367.     │ Note to LAN users: If you are using a slow LAN (2 MBPS or  │
  2368.     │ less) you may want to consider using the CDROM keyword for │
  2369.     │ any areas that live across the LAN from the machine the    │
  2370.     │ user logs onto, even if they're on a hard disk.  This can  │
  2371.     │ cut down on LAN overhead quite a bit.              │                      │
  2372.     └────────────────────────────────────────────────────────────┘
  2373.  
  2374.     The best way to deal with a CD that already has FILES.BBS files
  2375.     is to simply make a mirror of the CD's directory tree on your
  2376.     hard disk.  Then copy all the FILES.BBS files to the hard disk
  2377.     mirror and set the FILESBBSPATH for each area on the CD to the
  2378.     relevant mirror directory.
  2379.  
  2380.     Making a mirror directory is easy.  ALl you need to do is
  2381.     (something like) this:
  2382.  
  2383.         C:\> xcopy g:\files.bbs c:\cdrom\ /s /e
  2384.  
  2385.     ... in this simple DOS example, we're asking XCOPY to make
  2386.     copies on the hard disk of all the FILES.BBS files on the CD,
  2387.     creating the directories as needed, and in fact building an
  2388.     empty copy of the whole directory tree.  For most CDs the hard
  2389.     disk usage by this technique should be negligible.
  2390.  
  2391.  
  2392.  
  2393.  
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.         NanoBBS 1.16 Documentation                              Page 40
  2401.  
  2402.         ┌─────────────────────────────────────┐
  2403.     │ A complete listing of all of the    │
  2404.     │ available keywords for FILEAREA.CTL │
  2405.     └─────────────────────────────────────┘
  2406.  
  2407.         INCLUDE {filename}- This tells MFB to open the specified
  2408.            filename and take its input from that file - or in other
  2409.            words, "include" it.  This is useful for rotating CD-ROMs
  2410.            where you have several CDs defined but only one drive: you
  2411.            could rotate them by simply commenting out the include name
  2412.            for the outgoing CD, uncomment the include for the incoming
  2413.            CD, and then just swap the CDs themselves.  Voila!
  2414.  
  2415.         FILEAREA {number} - Starts a file area definition.
  2416.  
  2417.     NAME {Area Name } - Defines the file area's name
  2418.  
  2419.     DOWNLOAD {path}   - Defines where the files themselves exist
  2420.  
  2421.     UPLOAD {path}      - Defines where files should be uploaded
  2422.  
  2423.         FILESBBS {path}   - Defines where the FILES.BBS file lives. This
  2424.            is optional; if it is not used FILES.BBS will be expected in
  2425.            the same directory as DOWNLOAD.
  2426.  
  2427.         AGE {age}         - The minimum age needed to access the area
  2428.  
  2429.         CDROM             - This means the area is on a CD.  Files are
  2430.            copied to a temporary directory prior to downloading.
  2431.  
  2432.     ACCESS {access}   - Defines the access needed to use the area.
  2433.  
  2434.         ULACCESS {access} - Defines the access needed to upload in the area.
  2435.  
  2436.         DLACCESS {access} - Defines the access needed to download in the area.
  2437.  
  2438.     KEYS {keys}      - Defines the key(s) needed to use the area.
  2439.  
  2440.         ULKEYS {keys}     - Defines the key(s) needed to upload in the area.
  2441.  
  2442.         DLKEYS {keys}     - Defines the key(s) needed to download in the area.
  2443.  
  2444.     NOUPLOADS      - Uploading is not allowed in the area.
  2445.  
  2446.         PCBSTYLE          - This indicates that the FILES.BBS file in this
  2447.                             area includes the file date and size (regular
  2448.                             FILES.BBS files do not).  Since NanoBBS already
  2449.                             displays this information, this keyword causes
  2450.                             NanoBBS to strip the redundant information from
  2451.                             the FILES.BBS when it is displayed.  This
  2452.                             keyword gets its name from the fact that the
  2453.                             extra information stripped by this keyword is
  2454.                             the only important difference between FILES.BBS
  2455.                             and the PC-Board DIR* files - thus you can use
  2456.                             the DIR files found on some CD-ROMs with little
  2457.                             or no modification.
  2458.  
  2459.  
  2460.         NanoBBS 1.16 Documentation                              Page 41
  2461.  
  2462.         INDENTDESC        - Some CD-ROMs use a slightly different way of
  2463.                             indicating a continued long file description -
  2464.                             they indent the continued description several
  2465.                             columns rather than using a special character
  2466.                             as NanoBBS does.  By using this keyword, such
  2467.                             FILES.BBS files can be used unmodified and will
  2468.                             have properly wrapped descriptions.  Do not use
  2469.                             this keyword indiscriminately - it can cause
  2470.                             problems with indented comment lines!
  2471.  
  2472.     END          - End the area's definition.
  2473.  
  2474.         ╔═╦══════════════════════════╦═╗
  2475.     ║ ║    Setting Up Doors     ║ ║
  2476.     ╚═╩══════════════════════════╩═╝
  2477.  
  2478.     "Doors" are external programs, usually games, that can be called
  2479.     up by the BBS for users to use while they are online.  Whirlwind
  2480.     Software's Rancho Nevada, Galactic Empire, The Streets,
  2481.     S.T.U.P.I.D., and others, are examples of popular door programs
  2482.     compatible with NanoBBS and many other BBSes.
  2483.  
  2484.     Having only been sysoping for the last seven years or so, I
  2485.     can't claim to be an authority on this, but I believe the term
  2486.     "Door" originated on BBSes that were arranged to be like
  2487.     buildings in a text adventure game.  The "Door" was a doorway
  2488.     out of the BBS and into another game altogether.  Please don't
  2489.     flame me if I'm out to lunch on this.
  2490.  
  2491.     Doors are defined in the DOORS.CTL file. Like the system
  2492.     configuration file and message area/file area configuration
  2493.     files in the previous chapters, this is a flat ASCII file which
  2494.     can be edited with any ASCII text processor.
  2495.  
  2496.     Once you have edited DOORS.CTL to your needs, you must then
  2497.     compile the doors configuration file into the DOORS.DAT file
  2498.     which NanoBBS can more easily read.  This can be done in two
  2499.     ways.  The simplest is to run the CONFIG program as you did for
  2500.     the NODE1.CTL general config file.  Tbis will also compile the
  2501.     DOORS.CTL file.  The other way is to run the MAKEDOOR.EXE
  2502.     program like so:
  2503.  
  2504.                 MAKEDOOR {filename}
  2505.  
  2506.         ...where {filename} is the file name of the doors file you want
  2507.         to compile.  It is usually DOORS.CTL.
  2508.  
  2509.     This compiles your DOORS.CTL into DOORS.DAT the same way that
  2510.     CONFIG.EXE did, because CONFIG actually calls MAKEDOOR.EXE in
  2511.     the process of configuring everything.    However this way will
  2512.     only compile the doors configuration; file areas, message areas
  2513.     and general configuration remain unaffected when you use
  2514.     MAKEDOOR.
  2515.  
  2516.     Each door is defined by a set of lines in the DOORS.CTL file.
  2517.     The first line of each door's definition starts with DOOR and
  2518.     the door's number, and ends with END.
  2519.  
  2520.         NanoBBS 1.16 Documentation                              Page 42
  2521.  
  2522.         Here is a basic example:
  2523.  
  2524.           door 1
  2525.                   path c:\doors\rancho\
  2526.                   command rancho.exe -l -a
  2527.                   flavour dorinfo1.def
  2528.                   access 50
  2529.                   realname
  2530.       end
  2531.  
  2532.         The preceding example calls Rancho Nevada.  It logs to the
  2533.         directory C:\DOORS\RANCHO\, and calls RANCHO.EXE with the -l -a
  2534.         command line parameters.  It requires an access level of 50 to
  2535.         access, uses a DORINFO1.DEF door info drop file, and will
  2536.         substitute the user's real name for the username.
  2537.  
  2538.       door 2
  2539.           path c:\doors\hiq\
  2540.           command %C /C hiq.bat
  2541.           flavour dorinfo1.def
  2542.           access 10
  2543.           lastname NLN
  2544.       end
  2545.  
  2546.     This example calls Hi-Q.  It logs to the C:\DOORS\HIQ\ directory
  2547.     and calls up COMMAND.COM, which in turn calls up HIQ.BAT.  We
  2548.     assume in this example that there is already a HIQ.BAT in place
  2549.     which takes the appropriate steps to run Hi-Q.    Access level 10
  2550.     is needed, and if the user is using a one-word pseudo, the last
  2551.     name NLN will be forced.
  2552.  
  2553.     ┌────────────────────────────┐
  2554.     │ A Complete Listing of      │
  2555.     │ All the Keywords Available │
  2556.     │ for DOORS.CTL          │
  2557.     └────────────────────────────┘
  2558.  
  2559.     PATH specifies the path where NanoBBS should change to before
  2560.          running the door.
  2561.  
  2562.     COMMAND specifies the executable filename and command line
  2563.         parameters needed to run the door.  Use %c /c to specify
  2564.         a fully pathed COMMAND.COM for running batch files.
  2565.  
  2566.         In the COMMAND parameter, you can substitute %n for the
  2567.         node number, %c for the COMMAND.COM comspec (which you
  2568.         need to execute batch files).  These will be translated
  2569.         into their full form when the door is run, e.g. if the
  2570.         user is on node 10, %n is translated automatically into
  2571.         10.  If you're running 4DOS, %c might translate into
  2572.         C:\4DOS\4DOS.COM.  Under plain vanilla DOS, %c would
  2573.         likely translate into C:\COMMAND.COM or perhaps
  2574.         C:\DOS\COMMAND.COM.  Note that to run a batch file, you
  2575.         MUST include the /C command line switch after the
  2576.         COMMAND.COM (or %c) and before the batch file name.
  2577.  
  2578.  
  2579.  
  2580.         NanoBBS 1.16 Documentation                              Page 43
  2581.  
  2582.         FLAVOUR can be either DORINFO1.DEF, DORINFOX.DEF or DOOR.SYS.
  2583.         DORINFOX.DEF is a special "flavour" where the node
  2584.         number is built into the filename, e.g. DORINFO2.DEF,
  2585.         DORINF25.DEF, DORIN132.DEF etc.
  2586.  
  2587.         AGE is the minimum age a user has to be to use the door.
  2588.  
  2589.         ACCESS is the minimum access level a user must have to use the door
  2590.  
  2591.         REALNAME tells NanoBBS to use the real name instead of the user
  2592.                 name
  2593.  
  2594.     LASTNAME tells NanoBBS what to put in for a last name if the
  2595.          user has a one-word handle.  If this statement is
  2596.          missing, the last name is left blank.
  2597.  
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608.  
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.  
  2615.  
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.         NanoBBS 1.16 Documentation                              Page 44
  2641.  
  2642.         ┌─┬─┬─┬─┬─┬─────────────────────────────────────┬─┬─┬─┬─┬─┐
  2643.     │ │ │ │ │ │ THE BLACK ART of BATCH FILE WRITING │ │ │ │ │ │
  2644.     └─┴─┴─┴─┴─┴─────────────────────────────────────┴─┴─┴─┴─┴─┘
  2645.  
  2646.     The Basics - Why Batch files?
  2647.  
  2648.     Batch files are an important part of any true DOS BBS, whether
  2649.     it be NanoBBS, Maximus, RemoteAccess, Opus, or any one of dozens
  2650.     of others on the market today.    Once you're inside the BBS,
  2651.     NanoBBS takes care of itself for you, but how you enter the BBS
  2652.     is under the control of your DOS batch files.
  2653.  
  2654.     There are several ways in which you can enter NanoBBS.
  2655.  
  2656.     - You can just type BBS at the prompt.    Assuming everything's OK
  2657.       configuration-wise, NanoBBS will assume you're in local mode
  2658.       and will present you with the logon prompt.  You may have to
  2659.       hit [Enter] first depending on your choice for that option.
  2660.       You can then log on, do your thing and log off, all the time
  2661.       never even looking at the modem.  And once you're done, you're
  2662.       back at the DOS prompt where you started.
  2663.  
  2664.     - You can put NanoBBS into its Wait-For-a-Call (WFC) mode.  This
  2665.       is achieved simply by typing BBS /W at the DOS prompt.
  2666.       NanoBBS will enter its WFC mode and will wait for one of the
  2667.       following:
  2668.  
  2669.         o An incoming modem call
  2670.         o An event
  2671.         o A local logon (using Alt-L)
  2672.         o An ESC key from the keyboard, indicating that it's
  2673.           time to exit.
  2674.  
  2675.       After any of the above are completed, NanoBBS exits back to
  2676.       DOS.
  2677.  
  2678.     - You can start up NanoBBS "Hot" from a mailer or as a sort of
  2679.       door.  This is done by specifying a baud rate with the /B
  2680.       command line switch.    When this switch is used, NanoBBS
  2681.       assumes that the modem is active and that a connection has
  2682.       already been made, and it begins an online session at the
  2683.       specified baud rate.    Once the session is finished, NanoBBS
  2684.       exits back to DOS.
  2685.  
  2686.     All of these methods basically call up NanoBBS once, run through
  2687.     a single online (or local) session, and then exit back to DOS.
  2688.     Of course, you want to be able to handle many calls in a row, so
  2689.     just using these methods by themselves isn't practical.
  2690.  
  2691.     This is where the batch files come in.    In an unattended BBS you
  2692.     need the BBS to go back to a Fidonet mailer or go back to
  2693.     waiting for a call after an online session is complete.
  2694.  
  2695.     This is done with batch files.
  2696.  
  2697.  
  2698.  
  2699.  
  2700.         NanoBBS 1.16 Documentation                              Page 45
  2701.  
  2702.         ┌─────────────────────────┐
  2703.         │ The Simplest Batch File │
  2704.     └─────────────────────────┘
  2705.  
  2706.     Here is the simplest possible example of an unattended BBS batch
  2707.     file.  It makes some assumptions.
  2708.  
  2709.         BBS /W
  2710.         RUNBBS.BAT
  2711.  
  2712.     Firstly, it assumes that its own name is RUNBBS.BAT.  The second
  2713.     line re-cycles the batch file by non-recursively calling itself.
  2714.     It also assumes that your BBS.EXE is on the DOS path (see your
  2715.     PATH statement in AUTOEXEC.BAT).
  2716.  
  2717.     The problem with this batch file is that there's no way to get
  2718.     out of it unless you're REALLY quick with the Ctrl-Break key!
  2719.     It doesn't check to see if you had hit [Esc] to exit WFC
  2720.     (Waiting For Caller), nor does it try to process events.  All it
  2721.     can do is keep fielding calls.
  2722.  
  2723.     This problem is overcome with...
  2724.  
  2725.     ┌─────────────────────┐
  2726.     │ NanoBBS Errorlevels │
  2727.     └─────────────────────┘
  2728.  
  2729.     DOS provides a way for programs to communicate with DOS after
  2730.     the program has finished.  This is called an ERRORLEVEL.  What
  2731.     this is, is a number that the program passes back to DOS on
  2732.     completion, which is supposed to be a "what went wrong" code.
  2733.  
  2734.     NanoBBS doesn't use errorlevels the way the DOS programmers had
  2735.     in mind.  Instead, it uses the errorlevel to tell your batch
  2736.     file how the program finished: Did it exit normally?  Did the
  2737.     SysOp hit the Escape key?  Is an event being run?
  2738.  
  2739.     NanoBBS has two hardcoded errorlevels, and lets you define
  2740.     errorlevels for your events.  They are:
  2741.  
  2742.       SysOp hit ESCAPE at the WFC screen    : Errorlevel 1
  2743.  
  2744.       BBS Exited normally after an
  2745.       online or local session        : Errorlevel 0
  2746.  
  2747.       An Event is being run         : Errorlevel 2 thru 255
  2748.  
  2749.  
  2750.  
  2751.  
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.         NanoBBS 1.16 Documentation                              Page 46
  2761.  
  2762.         Let's translate this into another example, this one of a much
  2763.         more practical (but still very simple) batch file:
  2764.  
  2765.         @ECHO OFF
  2766.         :TOP
  2767.         C:
  2768.         CD\BBS
  2769.         BBS /W
  2770.         IF ERRORLEVEL 2 GOTO TOP
  2771.         IF ERRORLEVEL 1 GOTO FINISH
  2772.         GOTO TOP
  2773.         :FINISH
  2774.         @ECHO BBS OFFLINE!
  2775.  
  2776.     This example uses two of DOS's batch file commands.  They are
  2777.     the GOTO command and the IF ERRORLEVEL command.
  2778.  
  2779.     Let's look at this example line by line.
  2780.  
  2781.         @ECHO OFF
  2782.     This just turns off DOS echoing, so that the appearance is
  2783.     neater when the batch file runs.
  2784.  
  2785.         :TOP
  2786.     This is a "label" declaration.  Later in the batch file there is a
  2787.     GOTO TOP command.  It will cause the batch file to go to this
  2788.     line and continue running from here.
  2789.  
  2790.         C:
  2791.         CD\BBS
  2792.     These lines just make sure that DOS is logged to the right
  2793.     directory.  It is possible for doors and external programs to
  2794.     change the current directory while the online BBS session is
  2795.     running, so we include these two lines to set right any such
  2796.     discrepancy.  Of course this is only an example; if you run your
  2797.     BBS in a directory other than C:\BBS\, you must change these
  2798.     lines to suit your paths.
  2799.  
  2800.         BBS /W
  2801.     This calls NanoBBS in WFC (Waiting For Call) mode.  When NanoBBS
  2802.     is finished it will present a DOS errorlevel which can be
  2803.     checked by the following two lines:
  2804.  
  2805.         IF ERRORLEVEL 2 GOTO TOP
  2806.     This checks the DOS errorlevel.  The errorlevel might be
  2807.         anywhere from 0 to 255.  However, all the errorlevels above 1
  2808.     are reserved for the events, so in this batch file we need only
  2809.     be concerned with errorlevels 0 and 1.    What this line does is
  2810.     check to see if any errorlevel ABOVE 1 (meaning from 2 to 255
  2811.     inclusively) is there.    If so, it uses the GOTO TOP part to
  2812.     "go" to the :TOP label above.  In this batch file, that means it
  2813.     will "loop" and call the BBS again.  If the errorlevel is below
  2814.     2, the batch file simply goes to the next line...
  2815.  
  2816.                 IF ERRORLEVEL 1 GOTO FINISH
  2817.     This is similar to the above line.  Technically, this checks to
  2818.  
  2819.  
  2820.         NanoBBS 1.16 Documentation                              Page 47
  2821.  
  2822.         see if the errorlevel is 1 or higher, but since the above line
  2823.     would've transferred control to the :TOP label, this line can
  2824.         really only do the GOTO FINISH if the errorlevel is exactly 1.
  2825.     Note that Errorlevel 1 is returned when you escape from WFC
  2826.     modem by hitting escape.  This line, then, breaks out of the
  2827.     "loop" formed by the batch file.  If you hit Escape at WFC,
  2828.     you'll get the DOS prompt back.  If NanoBBS exits for any other
  2829.     reason, it re-cycles - and calls itself again.
  2830.  
  2831.         GOTO TOP
  2832.     This "goes" back to the :TOP label.  Because the above IF
  2833.     ERRORLEVEL lines have checked all other errorlevels, this line
  2834.     can only be reached if the errorlevel is zero.    Errorlevel 0 is
  2835.     returned after an online session, so we want to "loop" back to
  2836.     the :TOP label.
  2837.  
  2838.         :FINISH
  2839.     This label indicates where the batch file should "GOTO" when
  2840.     you exit NanoBBS by hitting Escape at the WFC (Wait for Call)
  2841.     screen.  See the IF ERRORLEVEL 1 GOTO FINISH line a couple of
  2842.     lines up.
  2843.  
  2844.         @ECHO BBS OFFLINE!
  2845.     This is just a cosmetic line to indicate that the batch file has
  2846.     terminated normally.  If this example is run as shown, you
  2847.     should only see this if you actually hit Escape at the WFC
  2848.     screen.
  2849.  
  2850.     ┌────────────────────────────────────────────────────────────────┐
  2851.     │ IMPORTANT NOTE ABOUT ERRORLEVELS:                 │
  2852.     │                                 │
  2853.     │ Many DOS commands will change or clear the value of DOS's      │
  2854.     │ errorlevel variable.    For this reason, you MUST place your IF  │
  2855.     │ ERRORLEVEL checks immediately after the BBS call in the batch  │
  2856.     │ file.  If any DOS commands or other programs are used after     │
  2857.     │ the BBS, they may change the errorlevel and the result is that │
  2858.     │ the series of IF ERRORLEVEL statements will be invalid, and     │
  2859.     │ your batch file will not work properly.             │
  2860.     └────────────────────────────────────────────────────────────────┘
  2861.  
  2862.  
  2863.         ┌────────────────────────────────────────┐
  2864.     │ Using The Errorlevels Passed By Events │
  2865.     └────────────────────────────────────────┘
  2866.  
  2867.     Now that we have established the basic use of errorlevels, let
  2868.     us examine a more advanced example, which processes events.
  2869.  
  2870.     Here are the event examples in NODE1.CTL:
  2871.  
  2872.       event 1 All 00:00 100 $Midnight Door Updates
  2873.       event 2 All 04:00 110 Nightly Maintenance
  2874.       event 3 Thu 04:30 120 Semi-Weekly Maintenance
  2875.       event 3 Sun 05:00
  2876.       event 4 All 02:00 130 Galactic Empire Update (Thrice Daily!)
  2877.       event 4 All 10:00
  2878.       event 4 All 18:00
  2879.  
  2880.         NanoBBS 1.16 Documentation                              Page 48
  2881.  
  2882.         So we have four events, and therefore four event errorlevels.
  2883.     Let's have a look at a batch file that would process these
  2884.     errorlevels.  I have included line numbers in {curly brackets}.
  2885.     You wouldn't actually use these line numbers in a real batch
  2886.     file...
  2887.  
  2888.         @ECHO OFF                        {1}
  2889.                                 {2}
  2890.         :TOP                        {3}
  2891.         C:                            {4}
  2892.         CD\BBS                        {5}
  2893.         BBS /W                        {6}
  2894.         IF ERRORLEVEL 131 GOTO TOP                {7}
  2895.         IF ERRORLEVEL 130 GOTO GALACTIC            {8}
  2896.         IF ERRORLEVEL 120 GOTO SEMIWEEKLY            {9}
  2897.         IF ERRORLEVEL 110 GOTO NIGHTLY            {10}
  2898.         IF ERRORLEVEL 100 GOTO MIDNIGHT            {11}
  2899.         IF ERRORLEVEL 1 GOTO FINISH             {12}
  2900.         GOTO TOP                        {13}
  2901.                                 {14}
  2902.         :GALACTIC                        {15}
  2903.         C:                            {16}
  2904.         CD\DOORS\GALACTIC                    {17}
  2905.         G.EXE /M                        {18}
  2906.         GOTO TOP                        {19}
  2907.                                 {20}
  2908.         :SEMIWEEKLY                     {21}
  2909.         C:                            {22}
  2910.         CD \ECHOMAIL                    {23}
  2911.         SQPACK *.SQD                    {24}
  2912.         CD \                        {25}
  2913.         VOPT                        {26}
  2914.         GOTO TOP                        {27}
  2915.                                 {28}
  2916.         :NIGHTLY                        {29}
  2917.         C:                            {30}
  2918.         CD \                        {31}
  2919.         SCAN C: D: E: F:                    {32}
  2920.             GOTO TOP                                        {33}
  2921.                                 {34}
  2922.         :MIDNIGHT                        {35}
  2923.         C:                            {36}
  2924.         CD \BBS                        {37}
  2925.         BBS /F                        {38}
  2926.         GOTO TOP                        {39}
  2927.                                 {40}
  2928.         :FINISH                        {41}
  2929.         @ECHO BBS OFFLINE!                    {42}
  2930.  
  2931.     If you're new at this, this example may seem a bit complex and
  2932.     overwhelming!  But in reality, many BBS batch files are even
  2933.     more complicated than this.  And really, if you break it down,
  2934.     it's not so difficult.
  2935.  
  2936.         This batch file is basically similar to the previous example.
  2937.     The first six lines are the same, establishing the :TOP label
  2938.  
  2939.  
  2940.         NanoBBS 1.16 Documentation                              Page 49
  2941.  
  2942.         and calling the BBS in WFC mode.
  2943.  
  2944.         Lines 7 through 13 handle the errorlevels.
  2945.  
  2946.     In line 7, any errorlevel above 130 (the highest errorlevel
  2947.     defined in the EVENT statements) causes the batch file to loop
  2948.     back to :TOP.
  2949.  
  2950.     In line 8, the batch file checks for errorlevel 130.  If the
  2951.     errorlevel is exactly 130, the batch file transfers to the
  2952.     :GALACTIC label.
  2953.  
  2954.     In line 9, if the errorlevel is 120, the batch file goes to the
  2955.     :SEMIWEEKLY label.
  2956.  
  2957.     In line 10, if the errorlevel is 110, the batch file goes to the
  2958.     :NIGHTLY label.
  2959.  
  2960.     In line 11, if the errorlevel is 100, the batch file goes to the
  2961.     :MIDNIGHT label.
  2962.  
  2963.     Line 12 should loo familiar.  It checks for errorlevel 1, which
  2964.     is returned when you hit Escape in the WFC screen.  If the
  2965.     errorlevel is 1, the batch file exits.
  2966.  
  2967.     Line 13 simply loops back to the :TOP label.
  2968.  
  2969.     Lines 15 through 19 make up what happens when the errorlevel
  2970.     from BBS.EXE is 130.  In line 8, if the errorlevel is 130 the
  2971.     batch file branches to the :GALACTIC label, on line 15.  Here,
  2972.     several DOS commands change the directory to C:\DOORS\GALACTIC
  2973.     and run G.EXE.    After this is done, the GOTO TOP returns to the
  2974.     :TOP label, to await another call.
  2975.  
  2976.     Similar groups of lines, starting with a label and ending with
  2977.     GOTO TOP, make up the commands that are called for each
  2978.     errorlevel.
  2979.  
  2980.     Finally, at line 41, we have the :FINISH label, and the way out.
  2981.  
  2982.  
  2983.     ┌─────────────────────────────────────┐
  2984.     │ Using batch files with Fido mailers │
  2985.     └─────────────────────────────────────┘
  2986.  
  2987.     One important thing that the above examples have in common is
  2988.     that they are all meant for stand-alone BBSes - BBSes which
  2989.     answer the phone themselves and don't have to use a mailer
  2990.     program like Binkleyterm or Frontdoor.    However, when you use a
  2991.     mailer, the batch mechanism is usually quite different.
  2992.     Different mailers have different ways of passing off information
  2993.     such as baud rate, time remaining, etc. to the BBS.
  2994.  
  2995.     Generally, your batch file calls up the mailer instead of the
  2996.     BBS, and looks for the mailer's errorlevels instead of your
  2997.     BBS's errorlevels.
  2998.  
  2999.  
  3000.         NanoBBS 1.16 Documentation                              Page 50
  3001.  
  3002.  
  3003.     Here is an example batch file called RUN.BAT which works with
  3004.         BinkleyTerm.
  3005.  
  3006.         @echo off
  3007.         :top
  3008.         c:
  3009.         cd\bink
  3010.         bt
  3011.         if errorlevel 144 bbsbatch.bat
  3012.         if errorlevel 120 bbsbatch.bat
  3013.         if errorlevel 100 goto mail
  3014.         if errorlevel 96 bbsbatch.bat
  3015.         if errorlevel 79 goto domaint
  3016.         if errorlevel 72 bbsbatch.bat
  3017.         if errorlevel 48 bbsbatch.bat
  3018.         if errorlevel 24 bbsbatch.bat
  3019.         if errorlevel 12 bbsbatch.bat
  3020.         if errorlevel 3 bbsbatch.bat
  3021.         if errorlevel 1 goto done
  3022.         goto top
  3023.  
  3024.         :domaint
  3025.  
  3026.         @echo *** Now Doing Daily Maintenance
  3027.         call c:\flit\filelist.bat
  3028.         call c:\batch\msgmaint.bat
  3029.         goto top
  3030.  
  3031.         :mail
  3032.         c:
  3033.         cd\squish
  3034.         squish in out squash
  3035.         goto top
  3036.  
  3037.         :done
  3038.  
  3039.         In the example on the previous page, we check for errorlevels
  3040.         passed by BinkleyTerm. One of BinkleyTerm's features is that
  3041.         when there is a BBS connect (that is, when the user hits Escape
  3042.         upon connection to BinkleyTerm) Binkley exits with an errorlevel
  3043.         which is based on the connect baud rate.  This errorlevel is the
  3044.         baud rate divided by 100, e.g. errorlevel 24 for 2400 baud,
  3045.         errorlevel 96 for 9600 baud, etc.
  3046.  
  3047.  
  3048.  
  3049.  
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.  
  3060.         NanoBBS 1.16 Documentation                              Page 51
  3061.  
  3062.         ┌───────────────────────────────────────────────────────────────┐
  3063.     │ Aside:                            │
  3064.     │                                │
  3065.     │ Remember I mentioned that errorlevels can be from 0 to 255?    │
  3066.     │ This is true, but it's not a problem to pass, or check for,   │
  3067.     │ an errorlevel above 255.  What happens is that the errorlevel │
  3068.     │ is "rolled over" so that it is less than 255.  In technical   │
  3069.     │ terms, the errorlevel is handled by DOS as if it were modulo    │
  3070.     │ 256, or the remainder of the actual errorlevel divided by 256.│
  3071.     │                                │
  3072.     │ So, if you have a V.34 modem, Binkley may try to pass     │
  3073.     │ errorlevel 288 - for 28800 baud.  This is fine, and you can    │
  3074.     │ legally use a statement like IF ERRORLEVEL 288 with no    │
  3075.     │ problems but be cautioned that errorlevel 288 is the same as    │
  3076.     │ errorlevel 32 as far as DOS is concerned!  288 modulo 256 is    │
  3077.     │ 32.  So if you wanted to use errorlevel 32 for something else,│
  3078.     │ you would run into a conflict here.                │
  3079.     │                                │
  3080.     │ As long as you are aware of this potential conflict, you can    │
  3081.     │ write your batch file so as to avoid it.            │
  3082.     └───────────────────────────────────────────────────────────────┘
  3083.  
  3084.     In the above example, we start off by changing to the
  3085.     BinkleyTerm directory and running BT.EXE.
  3086.  
  3087.     After that, the IF ERRORLEVEL statements check for numerous
  3088.     errorlevels.  Binkley generates a different errorlevel for each
  3089.     baud rate and this batch file checks for errorlevels 144, 120,
  3090.     96, 72, 48, 24, 12 and 3.  Since all of these errorlevels
  3091.     indicate a BBS session rather than a BinkleyTerm event, they all
  3092.     cause the same thing to occur: a batch file called BBSBATCH.BAT
  3093.     is called.  We'll look at BBSBATCH.BAT momentarily; it is a very
  3094.     important part of this method.
  3095.  
  3096.     The other errorlevels have various functions.  Errorlevel 100
  3097.     causes a jump to the :MAIL label, where several DOS commands
  3098.     pack and unpack echomail using Lanius' SquishMail system.
  3099.     Errorlevel 79 jumps to the :DOMAINT label, which in turn calls a
  3100.     couple of other batch files (using the dos CALL command) which
  3101.     might in turn call numerous daily maintenance routines.  In both
  3102.     cases, the batch file returns to :TOP to call up Binkley again.
  3103.  
  3104.         BinkleyTerm generates a one line batch file called BBSBATCH.BAT.
  3105.         This is called by the batch file above, and it looks something
  3106.         like this:
  3107.  
  3108.                 SPAWNBBS 14400 14400 1 46 /Arq
  3109.  
  3110.         But what is SPAWNBBS, you may ask?  If you guessed it's another
  3111.     batch file, you're right!  You may be thinking that this is
  3112.     getting unnecessarily complicated, but this actually gives the
  3113.     mailer incredible flexibility in dealing with different BBSes.
  3114.  
  3115.     Before we look at SPAWNBBS.BAT, let's examine the above
  3116.         one-liner.  The first 14400 is the baud rate.  We can pass this
  3117.         on to NanoBBS using the /B switch, and in fact we must in order
  3118.  
  3119.  
  3120.         NanoBBS 1.16 Documentation                              Page 52
  3121.  
  3122.         for it to work from a mailer.  We can ignore the second 14400
  3123.         for now.  The third parameter, 1, is the com port. NanoBBS gets
  3124.         its com port information from its config file so this is not
  3125.         needed either.  After that is the time left until the next
  3126.         mailer event, in minutes.  This can be passed to NanoBBS using
  3127.         the /T command line switch, so that NanoBBS enforces your
  3128.         mailer's events for you.  The last parameter is the connect
  3129.         information passed back by the modem, e.g. CONNECT 14400/ARQ
  3130.         would produce the /Arq shown above.
  3131.  
  3132.         Unfortunately, Binkley is fixed in the format of this batch
  3133.         file, so we need a third batch file to translate it into
  3134.         something NanoBBS can be called from.  This is where
  3135.         SPAWNBBS.BAT comes in.  Here is an example SPAWNBBS.BAT:
  3136.  
  3137.                 c:
  3138.                 cd\bbs
  3139.                 bbs -cnode2 -b%1 -t%4
  3140.                 c:
  3141.                 cd\bink
  3142.                 run
  3143.  
  3144.         See the parameters in line 3?  -cnode2 tells NanoBBS to use
  3145.         NODE2.DAT (which means you have to CONFIG NODE2), and -b%1 means
  3146.         that NanoBBS is to use the %1 DOS variable with the -b
  3147.         (baudrate) switch.  And, -t%4 means that NanoBBS is to use the
  3148.         %4 DOS variable with the -t (time left) switch.
  3149.  
  3150.         What does that mean?  Well, DOS lets you pass parameters to
  3151.         batch files.  Up to 9 of them.  So, let's look at BBSBATCH.BAT
  3152.         again and its parameters:
  3153.  
  3154.                           %1    %2  %3 %4  %5
  3155.                          ----- ----- - -- ----
  3156.                 SPAWNBBS 14400 14400 1 46 /Arq
  3157.  
  3158.         When we call SPAWNBBS.BAT like this, as this BBSBATCH.BAT does,
  3159.         %1 contains the value 14400.  %4 contains the value 46.
  3160.  
  3161.         This means that the line
  3162.  
  3163.                 bbs -cnode2 -b%1 -t%4
  3164.  
  3165.         really means
  3166.  
  3167.                 bbs -cnode2 -b14400 -t46
  3168.  
  3169.         and NanoBBS will run at 14400 bps, on whatever com port is
  3170.         defined in NODE2.CTL, and will impose a 46 minute maximum limit
  3171.         so that the mailer's event can run on time.
  3172.  
  3173.         Note that after the BBS runs, no errorlevel checking is done.
  3174.         This is because NanoBBS events are really only relevant to WFC
  3175.         mode, which is nonexistent when you run NanoBBS this way.
  3176.  
  3177.         Once the BBS has finished running, the SPAWNBBS.BAT logs back to
  3178.  
  3179.  
  3180.         NanoBBS 1.16 Documentation                              Page 53
  3181.  
  3182.         the mailer directory and calls up the original RUN.BAT again.
  3183.  
  3184.  
  3185.         Let's break this whole complicated mess down into steps.
  3186.  
  3187.                  ┌───────────────────────────────────────┐
  3188.                  │ RUN.BAT - Runs the mailer, and checks │
  3189.                  │ errorlevels for mailer events or BBS  ├<───┐
  3190.                  │ callers.                              │    │
  3191.                  └───────────────────┬───────────────────┘    │
  3192.                                     \│/                      /│\
  3193.                  ┌───────────────────┴────────────────────┐   │
  3194.                  │ Mailer generates one-line BBSBATCH.BAT │   │
  3195.                  └───────────────────┬────────────────────┘   │
  3196.                                     \│/                       │
  3197.                     ┌────────────────┴────────────────┐       │
  3198.                     │ BBSBATCH.BAT calls SPAWNBBS.BAT │      /│\
  3199.                     └────────────────┬────────────────┘       │
  3200.                                     \│/                       │
  3201.                   ┌──────────────────┴─────────────────────┐  │
  3202.                   │ SPAWNBBS.BAT takes the %1 and %4 batch │  │
  3203.                   │  variables and passes them to NanoBBS. │  │
  3204.                   └──────────────────┬─────────────────────┘  │
  3205.                                     \│/                      /│\
  3206.                   ┌──────────────────┴─────────────────────┐  │
  3207.                   │ Once NanoBBS is finished, SPAWNBBS.BAT │  │
  3208.                   │   returns to the RUN.BAT batch file.   ├──┘
  3209.                   └────────────────────────────────────────┘
  3210.  
  3211.         Here is another example of a batch file that works with
  3212.         Binkleyterm, but it can do the whole thing in one batch file,
  3213.         without needing the SPAWNBBS.BAT file or Binkley's BBSBATCH.BAT
  3214.         file.  It is slightly less sophisticated in that it is oblivious
  3215.         to Binkley's events and will not try to force them.  If you must
  3216.         force BinkleyTerm events, don't write your batch file this
  3217.         way...
  3218.  
  3219.                         @echo off
  3220.                         :top
  3221.                         c:
  3222.                         cd\bink
  3223.                         bt
  3224.                         if errorlevel 144 goto bbs14400
  3225.                         if errorlevel 120 goto bbs12000
  3226.                         if errorlevel 100 goto mail
  3227.                         if errorlevel 96 goto bbs9600
  3228.                         if errorlevel 79 goto domaint
  3229.                         if errorlevel 72 goto bbs7200
  3230.                         if errorlevel 48 goto bbs4800
  3231.                         if errorlevel 24 goto bbs2400
  3232.                         if errorlevel 12 goto bbs1200
  3233.                         if errorlevel 3 goto bbs300
  3234.                         if errorlevel 1 goto done
  3235.                         goto top
  3236.  
  3237.                         :bbs14400
  3238.                                                   (continued next page)
  3239.  
  3240.         NanoBBS 1.16 Documentation                              Page 54
  3241.  
  3242.         (continuing from previous page)
  3243.  
  3244.                         c:
  3245.                         cd\bbs
  3246.                         bbs.exe -cnode1 -b14400
  3247.                         goto top
  3248.                         :bbs12000
  3249.                         c:
  3250.                         cd\bbs
  3251.                         bbs.exe -cnode1 -b12000
  3252.                         goto top
  3253.                         :bbs9600
  3254.                         c:
  3255.                         cd\bbs
  3256.                         bbs.exe -cnode1 -b9600
  3257.                         goto top
  3258.                         :bbs7200
  3259.                         c:
  3260.                         cd\bbs
  3261.                         bbs.exe -cnode1 -b7200
  3262.                         goto top
  3263.                         :bbs4800
  3264.                         c:
  3265.                         cd\bbs
  3266.                         bbs.exe -cnode1 -b4800
  3267.                         goto top
  3268.                         :bbs2400
  3269.                         c:
  3270.                         cd\bbs
  3271.                         bbs.exe -cnode1 -b2400
  3272.                         goto top
  3273.  
  3274.                         :bbs1200
  3275.                         c:
  3276.                         cd\bbs
  3277.                         bbs.exe -cnode1 -b1200
  3278.                         goto top
  3279.                         :bbs300
  3280.                         c:
  3281.                         cd\bbs
  3282.                         bbs.exe -cnode1 -b300
  3283.                         goto top
  3284.  
  3285.                         :domaint
  3286.  
  3287.                         @echo *** Now Doing Daily Maintenance
  3288.                         call c:\flit\filelist.bat
  3289.                         call c:\batch\msgmaint.bat
  3290.                         goto top
  3291.  
  3292.                         :mail
  3293.                         c:
  3294.                         cd\squish
  3295.                         squish in out squash
  3296.                         goto top
  3297.  
  3298.                         :done
  3299.  
  3300.         NanoBBS 1.16 Documentation                              Page 55
  3301.  
  3302.         See what the preceding batch file does?  It actually goes to a
  3303.         different part of the batch file for each baud rate.  Thus the BBS
  3304.         is called with the right baud rate based on the errorlevel Binkley
  3305.         passes.
  3306.  
  3307.         ┌──────────────────────────────────────────────────────────────┐
  3308.         │ Similar batch files are possible with virtually any DOS      │
  3309.         │ mailer you can imagine.  In particular, Front Door will work │
  3310.         │ with the first set of example batch files with only minor    │
  3311.         │ modifications to the batch files.  Remember, READ YOUR       │
  3312.         │ MAILER INSTRUCTIONS, particularly the part dealing with      │
  3313.         │ errorlevels and BBS Batch Files, before you write a batch    │
  3314.         │ file you will be relying on!                                 │
  3315.         │                                                              │
  3316.         │ And very importantly, TEST your batch files.  If you have    │
  3317.         │ more than one line, call your BBS on the other line, at      │
  3318.         │ various baud rates, and just make sure everything's OK. Get  │
  3319.         │ a friend with a mailer to send you netmail.  Watch it come   │
  3320.         │ in and make sure it unpacks.  You should comment out the     │
  3321.         │ @echo off statements while you're debugging your batch files │
  3322.         │ so that you can see what's going on.                         │
  3323.         │                                                              │
  3324.         │ Don't be afraid to ask for help from other SysOps!           │
  3325.         └──────────────────────────────────────────────────────────────┘
  3326.  
  3327.  
  3328.  
  3329.  
  3330.  
  3331.  
  3332.  
  3333.  
  3334.  
  3335.  
  3336.  
  3337.  
  3338.  
  3339.  
  3340.  
  3341.  
  3342.  
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.  
  3350.  
  3351.  
  3352.  
  3353.  
  3354.  
  3355.  
  3356.  
  3357.  
  3358.  
  3359.  
  3360.         NanoBBS 1.16 Documentation                              Page 56
  3361.  
  3362.         ╔═╦══════════════════════════╦═╗
  3363.     ║ ║ NanoBBS Utility Programs ║ ║
  3364.     ╚═╩══════════════════════════╩═╝
  3365.  
  3366.     CONFIG.EXE    - The NanoBBS General Configuration Compiler.
  3367.               See the chapter entitled "The Configuration
  3368.               File" for complete details on the use of this
  3369.               program.
  3370.  
  3371.     MMB.EXE     - The NanoBBS Message Base Configuration Compiler
  3372.  
  3373.     MFB.EXE     - The NanoBBS File Base Configuration Compiler
  3374.  
  3375.     MAKEDOOR.EXE    - The NanoBBS Doors Configuration Compiler
  3376.  
  3377.     ┌─────────┐
  3378.     │ UFO.EXE │
  3379.     └─────────┘
  3380.  
  3381.     UFO.EXE compiles the text source files for UFO scripts into .BBS
  3382.     files which are readable by NanoBBS.  Please see the section on
  3383.     UFO commands for more information on the structure and syntax of
  3384.     the source files.
  3385.  
  3386.     UFO.EXE has only one parameter, that is the filename to be
  3387.     compiled.  There are no command line switches or other options.
  3388.     If the filename has no path, the current path is assumed.  If it
  3389.     has no extension, .UFO is assumed.
  3390.  
  3391.     ┌─────────────┐
  3392.     │ VIEWUFO.EXE │
  3393.     └─────────────┘
  3394.  
  3395.     VIEWUFO.EXE emulates the BBS's UFO syntax parser (in fact it
  3396.     contains a copy of the UFO kernal).  It is used for previewing
  3397.     your UFO scripts without having to fire up the BBS and log in,
  3398.     possibly having to wade through many menus to get to the one
  3399.     piece of UFO code you want to test.  With VIEWUFO that is not
  3400.     necessary; you can supply the name of any .BBS file on the
  3401.     command line.  If no path is given, VIEWUFO first looks in the
  3402.     current directory and then in the "textpath" directory defined
  3403.     in the config control file NODE1.CTL (or whatever you've chosen
  3404.     to name it).  The file name is, of course, mandatory but you
  3405.     have another optional parameter: You can emulate the session
  3406.     with any user in your user file by supplying the /U parameter
  3407.     after the filename.  The /u should be immediately followed by
  3408.     either the user's number or name if it's a one word pseudo.
  3409.  
  3410.     Examples: VIEWUFO MENU will view a file called MENU.BBS.
  3411.  
  3412.           VIEWUFO MENU /U0 will load the first user record
  3413.                    (should be the sysop!!!) and treat
  3414.                    all functions with that user's access
  3415.                    level, flags and other variables.
  3416.  
  3417.           VIEWUFO MENU /UTommy will load "Tommy" (if present).
  3418.  
  3419.  
  3420.         NanoBBS 1.16 Documentation                              Page 57
  3421.  
  3422.           VIEWUFO MENU /UJohn Smith is invalid and will attempt
  3423.                         to find a user whose whole
  3424.                         name is just "John".  I
  3425.                         might do something about
  3426.                         this in the next version.
  3427.  
  3428.     ┌───────────┐
  3429.     │ NCOMP.EXE │
  3430.     └───────────┘
  3431.  
  3432.     NCOMP.EXE is the NanoBBS language compiler.  It is NOT the same
  3433.     as UFO.EXE and its function should not be confused with UFO.EXE.
  3434.     Where UFO compiles scripts which are used to alter and augment
  3435.     NanoBBS's function, NCOMP is used to configure the low-level
  3436.     system messages, such as the prompts, headers, footers, list
  3437.     formats, menus, and so forth.  NCOMP compiles flat text files
  3438.     which are named filename.TXL.  It will generate filename.LNG and
  3439.     filename.LDX files which are used by NanoBBS directly.    Embedded
  3440.     colours and a number of other embedded commands are allowed in
  3441.     language files, but UFO syntax is not and will be simply written
  3442.     in an ugly manner as though it were text.
  3443.  
  3444.         ┌─────────────┐
  3445.         │ DISTILL.EXE │
  3446.         └─────────────┘
  3447.  
  3448.         This program should be used VERY SPARINGLY - only when absolutely
  3449.         necessary.  It scans the NANOBBS.USR file (which contains all the
  3450.         user records) and physically removes any records which are marked
  3451.         "Deleted".  I do not recommend running this program because
  3452.  
  3453.                 (1) Users above the ones you delete will get new user
  3454.                     numbers, which will cause confusion, and
  3455.  
  3456.                 (2) As a result of the new user numbers, many users'
  3457.                     messagebase Last-Read pointers will be incorrect,
  3458.                     causing unbelievable confusion and resulting in a flood
  3459.                     of repetitive and negative feedback, and
  3460.  
  3461.                 (3) You can always go on an advertising blitz and let the
  3462.                     resulting influx of new users overwrite the ones you've
  3463.                     marked deleted.
  3464.  
  3465.         Nevertheless, if you have a pressing need to reduce the physical
  3466.         size of your user file, this program will do it (provided you have
  3467.         marked the accounts you want to delete as "deleted").
  3468.  
  3469.         I have written this program against my better judgment, only
  3470.         because a great number of sysops have requested it.  I still think
  3471.         I should have left it to a third party author. Beware!
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  
  3479.  
  3480.         NanoBBS 1.16 Documentation                              Page 58
  3481.  
  3482.         ╔═╦════════════════════════╦═╗
  3483.     ║ ║ External Control Files ║ ║
  3484.     ╚═╩════════════════════════╩═╝
  3485.     ┌─────────────────────┐
  3486.     │ CONFIGURATION FILES │
  3487.     └─────────────────────┘
  3488.     ┌────────────┐
  3489.     │ LIMITS.CTL │
  3490.     └────────────┘
  3491.  
  3492.     This file defines the time limits and download limits for each
  3493.     access level.  Make sure that all access levels which are in use
  3494.     on your system are included in this file or else you will find
  3495.     some users not getting the access they deserve.  The exact
  3496.     syntax of this file is laid out in the example file which comes
  3497.     with NanoBBS.
  3498.  
  3499.     ┌────────────┐
  3500.     │ EXPIRY.CTL │
  3501.     └────────────┘
  3502.  
  3503.     This file defines what happens when a user's account expires.
  3504.     The syntax of this file is explained in the example file.
  3505.  
  3506.     ┌────────────┐
  3507.     │ CENSOR.CTL │
  3508.     └────────────┘
  3509.  
  3510.     This is a list of words which will be censored out of messages
  3511.     posted to areas with the CENSOR option turned on.  The example
  3512.     file lists just a few words that I think most sysops will not
  3513.     want to have posted in most areas.  You can add or delete any
  3514.     words you like.
  3515.  
  3516.         ┌──────────────┐
  3517.     │ TRASHCAN.CTL │
  3518.     └──────────────┘
  3519.  
  3520.     This is a list of unacceptable user names.  If a new user's name
  3521.     is the same as any line in this file the account will not be
  3522.     created and the user will be hung up on.  If a line starts with
  3523.         @ (the at sign) then the rest of the line is taken as a
  3524.     substring instead of doing an exact search.
  3525.  
  3526.     Examples:
  3527.  
  3528.     Say your TRASHCAN.CTL file contains:
  3529.  
  3530.     @CRAP
  3531.     @FRUG
  3532.     ALL
  3533.  
  3534.         It will disallow someone named "Joe Crapola" or "Motherfrugger"
  3535.         or "All" but will allow "Allison Smith".  For historical
  3536.         reasons, it is a good idea to make "ALL" an unacceptable name.
  3537.  
  3538.  
  3539.  
  3540.         NanoBBS 1.16 Documentation                              Page 59
  3541.  
  3542.         ┌──────────────┐
  3543.     │ FIDOCOST.CTL │
  3544.         └──────────────┘
  3545.  
  3546.     This nifty little file is how NanoBBS can do Fidonet netmail
  3547.     costing without a nodelist!  Of course, it is left to your
  3548.     mailer to determine whether any of the nodes provided by your
  3549.     users really exist.  The syntax is quite simple and is described
  3550.     in full in the FIDOCOST.CTL example included with NanoBBS.
  3551.  
  3552.     ┌────────────┐
  3553.     │ COOKIE.CTL │
  3554.     └────────────┘
  3555.  
  3556.     This is an example input file for the [cookie] UFO keyword.  It
  3557.     has a few dozen memorable quotes and song lyrics, and is the one
  3558.     I use personally on THC Freedom Online BBS.
  3559.  
  3560.     ┌───────────┐
  3561.     │ NODE1.CTL │
  3562.     └───────────┘
  3563.  
  3564.     This is the general configuration file for the BBS.  See the
  3565.     included NODE1.CTL file for a full explanation of all the
  3566.     options in this file.  It must be compiled with the CONFIG.EXE
  3567.     program in order for NanoBBS to be able to use it.  This file
  3568.     can have any name, but to use any name other than NODE1, you
  3569.     must use the /C command line option.
  3570.  
  3571.         ┌─────────────┐
  3572.     │ MSGAREA.CTL │
  3573.     └─────────────┘
  3574.  
  3575.     This is the message area configuration file for the BBS.  See
  3576.     the included MSGAREA.CTL file for examples and a syntax
  3577.     explanation.  It must be compiled with the MMB.EXE program
  3578.     (which is called by the CONFIG.EXE program for your convenience)
  3579.     in order for NanoBBS to be able to use it.
  3580.  
  3581.     ┌──────────────┐
  3582.     │ FILEAREA.CTL │
  3583.     └──────────────┘
  3584.  
  3585.     This is the file area configuration file for the BBS.  See the
  3586.     included FILEAREA.CTL file for examples and a syntax
  3587.     explanation.  It must be compiled with the MFB.EXE program (also
  3588.     called by CONFIG.EXE) in order for NanoBBS to be able to use it.
  3589.  
  3590.     ┌───────────┐
  3591.     │ DOORS.CTL │
  3592.     └───────────┘
  3593.  
  3594.     This is the configuration file for doors (external games,
  3595.     utilities, etc) for the BBS.  See the included DOORS.CTL file
  3596.     for examples and a syntax explanation.    It mist be compiled with
  3597.     the MAKEDOOR.EXE program (also called by CONFIG.EXE) in order
  3598.  
  3599.  
  3600.         NanoBBS 1.16 Documentation                              Page 60
  3601.  
  3602.         for NanoBBS to be able to use it.
  3603.  
  3604.         ┌──────────┐
  3605.     │ CHAT.CTL │
  3606.     └──────────┘
  3607.  
  3608.     This is the NanoCHAT configuration file.  Unlike the other
  3609.     configuration files, it does not need to be "compiled", and so
  3610.     no compiler is included with it.  Please see the NanoCHAT
  3611.     chapter for full details on the syntax and usage of this file.
  3612.  
  3613.     ┌──────────────┐
  3614.     │ MESSAGES.BAR │
  3615.     └──────────────┘
  3616.  
  3617.     This is the "Barricade File."
  3618.  
  3619.     Why barricades?
  3620.  
  3621.         Picture this situation: You have a user who's been well-behaved
  3622.         for the most part, perhaps she's uploaded a lot of stuff and
  3623.         sent you a donation.  But she happens to get on the wrong side
  3624.         of the moderator of a local echo conference and before she knows
  3625.         it she's barred from posting to that conference.  The moderator
  3626.         "directs" you to remove the user's access to the conference, but
  3627.         you don't want to delete the user from your system or reduce her
  3628.         access level; after all she's been a good and valued member of
  3629.         your board.
  3630.  
  3631.     What do you do?
  3632.  
  3633.         Well, in many other BBS programs you'd be between the rock and a
  3634.     hard place; you'd either have to swallow a big lump and reduce
  3635.     the user's access or you'd face the wrath of the moderator and
  3636.     the echomail hub.  But NanoBBS has a much less obnoxious
  3637.     solution.  It is the "barricade file."
  3638.  
  3639.     The barricade file is a a flat text file containing a list of
  3640.     message areas and the users who are NOT allowed to access them.
  3641.     It takes the following syntax (this is an example):
  3642.  
  3643.         Area  1
  3644.         The Hacker
  3645.         Joe Schmoe
  3646.         Dave Rhodes
  3647.         Area  15
  3648.         Tom Vu
  3649.         William J. Clinton
  3650.         Area  16
  3651.         Dave Rhodes
  3652.         Charlie Manson
  3653.  
  3654.     In this example, "The Hacker", "Joe Schmoe" and "Dave Rhodes"
  3655.         are not allowed to access message area #1.  "Tom Vu" and
  3656.         "William J. Clinton" are not allowed to access area 15.  Note
  3657.  
  3658.  
  3659.  
  3660.         NanoBBS 1.16 Documentation                              Page 61
  3661.  
  3662.         that "Dave Rhodes" is not allowed to access area 1 nor 16.
  3663.  
  3664.         There is one more step required to activate a barricade for an
  3665.     area.  In addition to including the area number and the names of
  3666.     the barred users in MESSAGES.BAR, you also must include the
  3667.     BARRICADE parameter in the area's definition in the MSGAREA.CTL
  3668.     file.  Don't forget to run MMB or CONFIG when you make this
  3669.     change.  The reason for requiring this keyword is that we don't
  3670.     want to check the barricade file _every_ time we change area,
  3671.     only when we are changing to a barricaded area.  By imposing
  3672.     this small extra requirement the system can eliminate some
  3673.     unnecessary overhead and will run faster.
  3674.  
  3675.     ┌───────────┐
  3676.     │ FILES.BBS │
  3677.     └───────────┘
  3678.  
  3679.     This is the file used in the file sections to keep track of the
  3680.     files availabel for downloading, and their descriptions.  It
  3681.     follows the basic format used in many BBS software packages,
  3682.     with some extensions.
  3683.  
  3684.     Each line in the FILES.BBS is either a file entry or a
  3685.     "comment."  To make a line a comment, just make the first
  3686.     character of the line a space.
  3687.  
  3688.     A file entry line starts with the filename and extension (e.g.
  3689.     FILENAME.ASC) followed by a general description of the file.  In
  3690.     the classic FILES.BBS scheme, the description must fit on one
  3691.     line, but NanoBBS offers two methods to get around this limit,
  3692.     which we will get to briefly.
  3693.  
  3694.  
  3695.         Here is an example of the FILES.BBS format.
  3696.  
  3697.      This is a comment line.
  3698.     FILENAME.ZIP A generic file listing entry
  3699.     NANOBBS.ZIP  NanoBBS, The Ultimate BBS Software Achievement!
  3700.      This is another comment line.    Here are some more files.
  3701.     CATCLOCK.ANS An ANSI animated cat clock.
  3702.     MODEMSET.TXT How to set up your high speed modem.
  3703.     NEWGAME.ZIP  The latest VGA Shootemup from Violence Games, Inc.
  3704.  
  3705.     Notice how the comment lines are indented?  As long as the
  3706.     first character is a space, NanoBBS will display the comment
  3707.     line without trying to find a file.  If you inadvertently put in
  3708.     a comment line without the leading space, what will happen is
  3709.     that NanoBBS will attempt to find a file with a filename equal
  3710.     to the first word in your comment.  In the above examples, if
  3711.     the comment lines were not indented, NanoBBS would in each case
  3712.     try to find a file called THIS.  It would very likely report
  3713.     this file missing.
  3714.  
  3715.  
  3716.  
  3717.  
  3718.  
  3719.  
  3720.         NanoBBS 1.16 Documentation                              Page 62
  3721.  
  3722.         EXTENDED FILE DESCRIPTIONS IN FILES.BBS
  3723.  
  3724.         Tilde-style extended descriptions:
  3725.  
  3726.     In FILES.BBS you can have descriptions on the same line up to
  3727.         240 characters (and they will be automatically word-wrapped),
  3728.     but that's not all!  By appending a tilde '~' character to a
  3729.     description, you can indicate that the following line, in its
  3730.     entirety, is also part of the description of the same file!  It
  3731.     too will be auto-wrapped and will appear to the user to be one
  3732.     long description.
  3733.  
  3734.     Here is an example, suppose this is a segment from a FILES.BBS:
  3735.  
  3736.     NANOBBS.ZIP  NanoBBS: Simply the most flexible BBS on the market!~
  3737.     Loaded with features! Internal X-Y-Zmodem and SEAlink transfers,~
  3738.     high speed file searching, internal QWK, an internal full screen~
  3739.     editor, and the legendary UFO scripting language only begin to~
  3740.     list the multitude of features in this amazing package! Shareware,~
  3741.     $69 for one or two nodes. From Whirlwind Software!
  3742.  
  3743.     Notice that the last line does not end in a tilde.  This is very
  3744.     important, because if it did, the next line would be counted as
  3745.     part of the description for NANOBBS.ZIP, even if it's really the
  3746.     FILES.BBS entry for the next file in the list!    Always remember
  3747.     never to put a tilde on the last line of an extended
  3748.     description!
  3749.  
  3750.         Now, this will come out looking something like this when the user
  3751.     lists the area:
  3752.  
  3753.     NANOBBS.ZIP  760348 94-12-01 NanoBBS: Simply the most flexible
  3754.                      BBS on the market! Loaded with
  3755.                      features! Internal X-Y-Zmodem and
  3756.                      SEAlink transfers, high speed file
  3757.                      searching, internal QWK, an
  3758.                      internal full screen editor, and
  3759.                      the legendary UFO scripting
  3760.                      language only begin to list the
  3761.                      multitude of features in this
  3762.                      amazing package! Shareware, $69 for
  3763.                      two nodes. From Whirlwind Software!
  3764.  
  3765.     Pretty neat, eh?  You can have descriptions of virtually
  3766.     limitless length using this technique, which is fortunate since
  3767.     so many FILE_ID.DIZ's seem to be just that: endless!
  3768.  
  3769.     Pipe-style extended descriptions:
  3770.  
  3771.     There is another format supported by NanoBBS for extended
  3772.     descriptions.  This is sometimes used on CD's, particularly on
  3773.     the Night Owl series.  After a FILES.BBS filename and
  3774.     description, the description can be continued by prepending a
  3775.     pipe symbol "|" to the following line.  As a matter of practice
  3776.     this should be further prepended with a space but NanoBBS does
  3777.     not require this.
  3778.  
  3779.  
  3780.         NanoBBS 1.16 Documentation                              Page 63
  3781.  
  3782.         Here is an example of a valid pipe-style extended description:
  3783.  
  3784.     NANOBBS.ZIP  NanoBBS: Simply the most flexible BBS on the
  3785.      | market! Loaded with features! Internal X-Y-Zmodem and SEAlink
  3786.      | transfers, high speed file searching, internal QWK, an
  3787.      | internal full screen editor, and the legendary UFO scripting
  3788.      | language only begin to list the multitude of features in this
  3789.      | amazing package! Shareware, $69 for one or two nodes. From
  3790.      | Whirlwind Software!
  3791.  
  3792.     This example produces a description that looks identical to that
  3793.     of the tilde-style example shown previously.
  3794.  
  3795.     Tilde and Pipe style continuations can be used interchangeably
  3796.     within the same FILES.BBS file but not within the same extended
  3797.         description of an individual file.  Although the pipe style is more
  3798.         commonly used by other BBSes, the tilde style is considerably
  3799.         faster, due to the internal structure of the BBS.
  3800.  
  3801.     When NanoBBS extracts a FILE_ID.DIZ to its FILES.BBS file, a
  3802.     pipe-style extended description is generated with a pipe
  3803.     starting each line from FILE_ID.DIZ except the first.
  3804.  
  3805.         ┌────────────┐
  3806.     │ SEMAPHORES │
  3807.     └────────────┘
  3808.  
  3809.     When the user does certain things which are likely to require
  3810.     the services of an external program after s/he logs off (e.g.
  3811.     uploading a file, posting echomail etc.) there has to be a way
  3812.     for the BBS to pass this fact off to the batch file which called
  3813.     it, so that the batch file can in turn call the appropriate
  3814.     upload processor, echomail processor, news mangler, etc.
  3815.  
  3816.     The traditional way that most BBSes accomplish this is through
  3817.     errorlevels.  Unfortunately there are only 256 errorlevels, and
  3818.     with five special exit conditions and the possibility of more
  3819.     errorlevels being used by UFO scripts, it quickly becomes
  3820.     apparent that the errorlevel method is inadequate.  Therefore,
  3821.     NanoBBS uses semaphores to communicate with the batch file.
  3822.  
  3823.     A semaphore is simply a zero-length file that the batch file
  3824.     checks with an IF EXIST ... line.  If the file exists, NanoBBS
  3825.     is indicating a condition.  There can be a virtually unlimited
  3826.     number of semaphores versus 256 errorlevels.
  3827.  
  3828.     All of the semaphores are written to the system directory. Here
  3829.     are the possible semaphores implemented so far, where xxx is the
  3830.     node number of the node which generated the file:
  3831.  
  3832.     UFILExxx.SEM - when a user has uploaded any files during the
  3833.     call.  You can then run BBS /F to reindex the file section
  3834.     between calls - this is important if reindexing takes a while
  3835.     due to a large file count.
  3836.  
  3837.  
  3838.  
  3839.  
  3840.         NanoBBS 1.16 Documentation                              Page 64
  3841.  
  3842.         EECHOxxx.SEM - when a user has entered Fidonet echomail.  You
  3843.     can use this to signal to the batch file that it should call
  3844.     Squish, Fastecho, Confmail, TosScan, or whatever you use to pack
  3845.     up your echomail.
  3846.  
  3847.     ENETMxxx.SEM - when a user has entered Fidonet netmail.
  3848.  
  3849.     EMAILxxx.SEM - when a user has entered Internet email.
  3850.  
  3851.     ENEWSxxx.SEM - when a user has entered Usenet news.
  3852.  
  3853.         ╔════════════════════╗
  3854.         ║ Files in /BBS/MISC ║
  3855.         ╚════════════════════╝
  3856.  
  3857.         Please note that in this early release of NanoBBS, most of the
  3858.         .RIP files do not yet exist.  NanoBBS will automatically
  3859.         substitute a .ANS or a .ASC file where a .RIP is expected and
  3860.         not found.
  3861.  
  3862.  
  3863.         FSEDHELP.ANS
  3864.  
  3865.         This is only available as a .ANS file, as it is the help screen
  3866.         for the NEd (NanoBBS EDitor) full-screen message editor, which
  3867.         requires ANSI.
  3868.  
  3869.         ┌───────────────────────────────────────────────────────────────┐
  3870.         │ Where the following files are concerned, NanoBBS is VERY      │
  3871.         │ flexible and VERY forgiving.  First, NanoBBS looks for a      │
  3872.         │ compiled UFO file, with an extension of .BBS.  Note that      │
  3873.         │ NanoBBS doesn't come with .BBS files for these files; if you  │
  3874.         │ want this option, you must create your own .UFO files and     │
  3875.         │ compile them. Anyhow, if NanoBBS does not find the .BBS file, │
  3876.         │ it then looks for a .RIP, .ANS, or a .ASC file, as is         │
  3877.         │ appropriate for the graphics standard the user is using, and  │
  3878.         │ it will fall back within these three, e.g. if a .RIP file is  │
  3879.         │ called for and not found, NanoBBS will look for a .ANS and    │
  3880.         │ then a .ASC.  Failing these, it tries .TXT, then no extension,│
  3881.         │ and only after all these have been exhausted does it finally  │
  3882.         │ give up and log an error.                                     │
  3883.         └───────────────────────────────────────────────────────────────┘
  3884.  
  3885.         BADNAME.BBS
  3886.         BADNAME.RIP
  3887.         BADNAME.ANS
  3888.         BADNAME.ASC
  3889.  
  3890.         This file is displayed when a user applying for a new account
  3891.         enters a name that has been locked out in TRASHCAN.CTL.  You can
  3892.         transplant compiled UFO code into this file.
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898.  
  3899.  
  3900.         NanoBBS 1.16 Documentation                              Page 65
  3901.  
  3902.         BYE.BBS
  3903.         BYE.RIP
  3904.         BYE.ANS
  3905.         BYE.ASC
  3906.  
  3907.         This is the file that is displayed when a normal logoff occurs;
  3908.         it is a sort of "Goodbye, see you soon!" message.  You can
  3909.         transplant compiled UFO code into this file.
  3910.  
  3911.  
  3912.         DOORS.BBS
  3913.         DOORS.RIP
  3914.         DOORS.ANS
  3915.         DOORS.ASC
  3916.  
  3917.         This is the file that is displayed when the user goes into the
  3918.         Doors menu.
  3919.  
  3920.  
  3921.         FILEHELP.BBS
  3922.         FILEHELP.RIP
  3923.         FILEHELP.ANS
  3924.         FILEHELP.ASC
  3925.  
  3926.         This provides detailed help for the file section.  It can
  3927.         contain UFO syntax.  Only FILEHELP.BBS is included.
  3928.  
  3929.  
  3930.         MAINHELP.BBS
  3931.         MAINHELP.RIP
  3932.         MAINHELP.ANS
  3933.         MAINHELP.ASC
  3934.  
  3935.         This provides detailed help for the main menu.  It can contain
  3936.         UFO syntax.  Only MAINHELP.BBS is included.
  3937.  
  3938.  
  3939.         LOGO.BBS
  3940.         LOGO.RIP
  3941.         LOGO.ANS
  3942.         LOGO.ASC
  3943.  
  3944.         This is the file which is displayed when the user first
  3945.         connects.  It is commonly called the "logo screen."
  3946.  
  3947.  
  3948.         WELCOME.BBS
  3949.         WELCOME.RIP
  3950.         WELCOME.ANS
  3951.         WELCOME.ASC
  3952.  
  3953.         This is the file which is displayed after the user has
  3954.         successfully logged on.  It is commonly called the "welcome
  3955.         screen."
  3956.  
  3957.  
  3958.  
  3959.  
  3960.         NanoBBS 1.16 Documentation                              Page 66
  3961.  
  3962.         ULPOLICY.BBS     DLPOLICY.BBS
  3963.         ULPOLICY.RIP     DLPOLICY.RIP
  3964.         ULPOLICY.ANS     DLPOLICY.ANS
  3965.         ULPOLICY.ASC     DLPOLICY.ASC
  3966.  
  3967.         These are the files displayed immediately prior to uploading
  3968.         and downloading, respectively.  Normally they would contain
  3969.         advice pertaining to acceptable uploads, ratio enforcement, etc.
  3970.  
  3971.  
  3972.         ┌────────────────────────────────────────────────────────────────┐
  3973.         │ Random Logo/Welcome Screens!                                   │
  3974.         │                                                                │
  3975.         │ Random welcome/logo screens are a popular feature of many      │
  3976.         │ BBSes, but few seem to support it internally as NanoBBS does.  │
  3977.         │                                                                │
  3978.         │ You can randomize the "logo" files by using the LOGO-RIP.LST,  │
  3979.         │ LOGO-ANS.LST and LOGO-ASC.LST files.  You can also randomize   │
  3980.         │ the "welcome" files by using the WELC-RIP.LST, WELC-ANS.LST    │
  3981.         │ and WELC-ASC.LST files.  These are plain text files which      │
  3982.         │ contain a list of the files to be randomly chosen from. If you │
  3983.         │ want to use random welcome files, the LOGO-*.LST files should  │
  3984.         │ be present in your system directory (your "syspath").  If      │
  3985.         │ present, NanoBBS will, instead of displaying a LOGO.* file,    │
  3986.         │ will instead randomly choose a filename from the list.         │
  3987.         │ Otherwise it just uses the appropriate LOGO.* file.  The       │
  3988.         │ "welcome" files work in just the same way! Here is an          │
  3989.         │ example of LOGO-ANS.LST, as used on THC Freedom Online BBS.    │
  3990.         │                                                                │
  3991.         │       THCLOGO1.ANS                                             │
  3992.         │       THCLOGO2.ANS                                             │
  3993.         │       THCLOGO5.ANS                                             │
  3994.         │       THCLOGO6.ANS                                             │
  3995.         │       THCLOGO7.ANS                                             │
  3996.         │       THCLOGO8.ANS                                             │
  3997.         │       THCLOGO9.ANS                                             │
  3998.         │       THCLOGOA.ANS                                             │
  3999.         │                                                                │
  4000.         │ If the filenames in the list have no extension, NanoBBS        │
  4001.         │ assumes that they are located in the same directory with the   │
  4002.         │ other system text files documented in this section (your       │
  4003.         │ "textpath").                                                   │
  4004.         └────────────────────────────────────────────────────────────────┘
  4005.  
  4006.  
  4007.         EXPIRED.BBS
  4008.         EXPIRED.RIP
  4009.         EXPIRED.ANS
  4010.         EXPIRED.ASC
  4011.  
  4012.         This file is displayed when a user logs on whose account has
  4013.         just expired.  This file is not required as SYSMSG 50 in the
  4014.         language file is used for the same purpose (sysmsg 50 is
  4015.         displayed first).
  4016.  
  4017.  
  4018.  
  4019.  
  4020.         NanoBBS 1.16 Documentation                              Page 67
  4021.  
  4022.         NEWUSER1.BBS
  4023.         NEWUSER1.RIP
  4024.         NEWUSER1.ANS
  4025.         NEWUSER1.ASC
  4026.  
  4027.         This is the file displayed prior to the user entering the "new
  4028.         user registration" procedure.
  4029.  
  4030.         NEWUSER2.BBS
  4031.         NEWUSER2.RIP
  4032.         NEWUSER2.ANS
  4033.         NEWUSER2.ASC
  4034.  
  4035.         This is the file displayed after the user completes the "new
  4036.         user registration" procedure.
  4037.  
  4038.         NEWS.BBS
  4039.         NEWS.RIP
  4040.         NEWS.ANS
  4041.         NEWS.ASC
  4042.  
  4043.         This is a "what's new" file displayed right after the "welcome"
  4044.         file has been displayed (see pg. 62)
  4045.  
  4046.  
  4047.         ┌────────────────┐
  4048.         │ NanoCHAT Files │
  4049.         └────────────────┘
  4050.  
  4051.         $I0.BBS $I1.BBS $I2.BBS $I3.BBS $I4.BBS $I5.BBS $IZ.BBS
  4052.  
  4053.         These are the files displayed when a user types /I in NanoCHAT.
  4054.         For example, if the user types /I0, the file $I0.BBS is
  4055.         displayed.  Similarly, /I3 would invoke $I3.BBS.  /I can be used
  4056.         to invoke files up to six distinct characters long, e.g. /IRULES
  4057.         would invoke a file called $IRULES.BBS, and /ISYSOPS would
  4058.         invoke $ISYSOPS.BBS.  Note that these files can be UFO scripts
  4059.         (hence the .BBS extension).  You can create as many /I files as
  4060.         you want.
  4061.  
  4062.  
  4063.         $MA.BBS $MB.BBS $MC.BBS $MY.BBS $MZ.BBS
  4064.  
  4065.         These are the files displayed when a user types /M in NanoCHAT.
  4066.         Their operation is identical to the /I files above, except of
  4067.         course that /M files are periodically displayed to the user
  4068.         automatically.  Again, full UFO syntax is A-OK, names up to six
  4069.         characters long are fine, and you can have as many as you want.
  4070.  
  4071.  
  4072.         ACTION.HLP
  4073.  
  4074.         This is the help file for actions in NanoCHAT.  It isn't a UFO
  4075.         script but it can contain embedded colour codes.
  4076.  
  4077.  
  4078.  
  4079.  
  4080.         NanoBBS 1.16 Documentation                              Page 68
  4081.  
  4082.         ACTION.LST
  4083.  
  4084.         This is a short list of actions for NanoCHAT.
  4085.  
  4086.  
  4087.         TOMMCHAT.HLP
  4088.  
  4089.         This is the help file for NanoCHAT.  It is a direct copy of the
  4090.         one from TommCHAT, hence its name.
  4091.  
  4092.  
  4093.  
  4094.  
  4095.  
  4096.  
  4097.  
  4098.  
  4099.  
  4100.  
  4101.  
  4102.  
  4103.  
  4104.  
  4105.  
  4106.  
  4107.  
  4108.  
  4109.  
  4110.  
  4111.  
  4112.  
  4113.  
  4114.  
  4115.  
  4116.  
  4117.  
  4118.  
  4119.  
  4120.  
  4121.  
  4122.  
  4123.  
  4124.  
  4125.  
  4126.  
  4127.  
  4128.  
  4129.  
  4130.  
  4131.  
  4132.  
  4133.  
  4134.  
  4135.  
  4136.  
  4137.  
  4138.  
  4139.  
  4140.         NanoBBS 1.16 Documentation                              Page 69
  4141.  
  4142.         ╔═╦═══════════════════════════════╦═╗
  4143.     ║ ║ KEYS WHILE THE USER IS ONLINE ║ ║
  4144.     ╚═╩═══════════════════════════════╩═╝
  4145.  
  4146.     ┌───────┐
  4147.     │ Alt-C │ Chat with the user.  ESC exits from Chat.  In chat,
  4148.     └───────┘ you can activate a capture buffer (for recording those
  4149.           "memorable" chat sessions) with the Alt-L (Chat
  4150.           Logging) key.
  4151.  
  4152.     ┌───────┐
  4153.     │ Alt-H │ Hangs up on the user.
  4154.     └───────┘
  4155.  
  4156.     ┌───────┐
  4157.     │ Alt-S │ Change the SysOp bar.  The sysop bar has several
  4158.     └───────┘ modes which display different information.  This key
  4159.           cycles through them.
  4160.  
  4161.     ┌───────┐
  4162.     │ Alt-E │ Invoke the user editor.  The user record of the user
  4163.     └───────┘ currently online will be presented but you can change
  4164.           to another user and you have access to all the
  4165.           functions of the BBS/E user editor.
  4166.  
  4167.     ┌───────┐
  4168.     │ Alt-F │ "Freeze" or "Unfreeze" time.  This key toggles between
  4169.     └───────┘ frozen and unfrozen time.  When time is frozen, time
  4170.           limits are not checked and the clock does not tick...
  4171.           however dead-man keyboard timeouts are still in full
  4172.           force.
  4173.  
  4174.     ┌───────┐
  4175.     │ Alt-J │ "J"ump to DOS.  This gets the path and filename for your
  4176.     └───────┘ command.com file straight from the COMPSPEC environment
  4177.           variable so it's automatic.  It swaps the program and
  4178.           all its variables out to a swap file (which can take a
  4179.           second or so) giving you the biggest DOS memory window
  4180.           possible.
  4181.  
  4182.     ┌──────┐
  4183.     │ PgDn │ Takes 5 minutes off the user's time remaining.
  4184.     └──────┘
  4185.  
  4186.     ┌──────┐
  4187.     │ PgUp │ Adds 5 minutes to the user's time remaining.
  4188.     └──────┘
  4189.  
  4190.     ┌────────────┐
  4191.     │ Down-arrow │ Takes 1 minute off the user's time remaining.
  4192.     └────────────┘
  4193.  
  4194.     ┌──────────┐
  4195.     │ Up-arrow │ Adds 1 minute to the user's time remaining.
  4196.     └──────────┘
  4197.  
  4198.  
  4199.  
  4200.         NanoBBS 1.16 Documentation                              Page 70
  4201.  
  4202.         ┌─────┐
  4203.     │ ESC │ Aborts any file transfer in progress when the current
  4204.         └─────┘ block finishes.  In streaming protocols the BBS will
  4205.         wait for the block to be acknowledged by the other
  4206.         end before aborting the transfer, so this may not
  4207.         occur instantly - one end may be several blocks ahead
  4208.         of the other, depending on your FOSSIL buffer size.
  4209.  
  4210.     ┌────────────────────────┐
  4211.     │ F1 ... F10         │
  4212.     │ Shift-F1 ... Shift-F10 │
  4213.     │ Ctrl-F1 ... Ctrl-F10     │
  4214.     │ Alt-F1 ... Alt-F10     │
  4215.     └────────────────────────┘
  4216.  
  4217.     These are 40 sysop-definable keys each of which causes a
  4218.     compiled UFO file (ending in .BBS) to be run.  If the file for a
  4219.     particular key is not found an error message will be displayed
  4220.     to the sysop console only.  Here are the keys and the filenames
  4221.     they invoke (all the files must be in the BBS System directory):
  4222.  
  4223.      ╔═════════════════════╦═══════════════════════╗
  4224.      ║   Key      Filename ║   Key         Filename  ║
  4225.      ╠══════════╤══════════╬═══════════╤═══════════╣
  4226.      ║   F1     │ F1.BBS   ║ Shift-F1  │ SF1.BBS   ║
  4227.      ║   F2     │ F2.BBS   ║ Shift-F2  │ SF2.BBS   ║
  4228.      ║   F3     │ F3.BBS   ║ Shift-F3  │ SF3.BBS   ║
  4229.      ║   F4     │ F4.BBS   ║ Shift-F4  │ SF4.BBS   ║
  4230.      ║   F5     │ F5.BBS   ║ Shift-F5  │ SF5.BBS   ║
  4231.      ║   F6     │ F6.BBS   ║ Shift-F6  │ SF6.BBS   ║
  4232.      ║   F7     │ F7.BBS   ║ Shift-F7  │ SF7.BBS   ║
  4233.      ║   F8     │ F8.BBS   ║ Shift-F8  │ SF8.BBS   ║
  4234.      ║   F9     │ F9.BBS   ║ Shift-F9  │ SF9.BBS   ║
  4235.      ║   F10    │ F10.BBS  ║ Shift-F10 │ SF10.BBS  ║
  4236.      ╚══════════╧══════════╩═══════════╧═══════════╝
  4237.      ╔═════════════════════╦═══════════════════════╗
  4238.      ║   Key      Filename ║   Key         Filename  ║
  4239.      ╠══════════╤══════════╬═══════════╤═══════════╣
  4240.      ║  Alt-F1  │ AF1.BBS  ║  Ctrl-F1  │ CF1.BBS   ║
  4241.      ║  Alt-F2  │ AF2.BBS  ║  Ctrl-F2  │ CF2.BBS   ║
  4242.      ║  Alt-F3  │ AF3.BBS  ║  Ctrl-F3  │ CF3.BBS   ║
  4243.      ║  Alt-F4  │ AF4.BBS  ║  Ctrl-F4  │ CF4.BBS   ║
  4244.      ║  Alt-F5  │ AF5.BBS  ║  Ctrl-F5  │ CF5.BBS   ║
  4245.      ║  Alt-F6  │ AF6.BBS  ║  Ctrl-F6  │ CF6.BBS   ║
  4246.      ║  Alt-F7  │ AF7.BBS  ║  Ctrl-F7  │ CF7.BBS   ║
  4247.      ║  Alt-F8  │ AF8.BBS  ║  Ctrl-F8  │ CF8.BBS   ║
  4248.      ║  Alt-F9  │ AF9.BBS  ║  Ctrl-F9  │ CF9.BBS   ║
  4249.      ║  Alt-F10 │ AF10.BBS ║  Ctrl-F10 │ CF10.BBS  ║
  4250.      ╚══════════╧══════════╩═══════════╧═══════════╝
  4251.  
  4252.  
  4253.  
  4254.  
  4255.  
  4256.  
  4257.  
  4258.  
  4259.  
  4260.         NanoBBS 1.16 Documentation                              Page 71
  4261.  
  4262.         ╔═╦═════════════════════════════════════════════╦═╗
  4263.         ║ ║ A TOUR OF THE WFC (WAITING FOR CALL) SCREEN ║ ║
  4264.         ╚═╩═════════════════════════════════════════════╩═╝
  4265.  
  4266.         When NanoBBS is waiting for a user, a screen called the WFC
  4267.         (Waiting for Call) screen is displayed.  The WFC, done up in
  4268.         stylish shades of blue, is designed to be informative and
  4269.         functional.  From the WFC, you can edit users, log on locally,
  4270.         temporarily disable the CD-ROM, and quickly exit back to DOS (much
  4271.         more quickly than most other BBSes!)
  4272.  
  4273.         The WFC displays a lot of information.
  4274.  
  4275.         Most noticeable is the time-of-day clock, with its 6-character-high
  4276.         digits.  If the BBS were ever to lock up in WFC, you'd have little
  4277.         trouble telling when it happened.
  4278.  
  4279.         Immediately below the time-of-day clock is a black bar which
  4280.         displays every character that comes in from the modem.  This is
  4281.         called the modem viewport.  This lets you see what's really going
  4282.         on when NanoBBS answers a call or initializes the modem, so that
  4283.         you can debug your configuration armed with as much information as
  4284.         possible.  Control characters, especially Carriage Returns and Line
  4285.         Feeds, are "expanded" into a human-readable form.
  4286.  
  4287.         Below the modem viewport is a 5-line status display.  This tells
  4288.         you what NanoBBS is doing at the present moment - initializing the
  4289.         modem, waiting for a call, executing an event, answering the phone,
  4290.         and so on.  Most of the time, it says "Now awaiting a call."
  4291.  
  4292.         Below the status display is the Next Event indicator.  This lets
  4293.         you know which event is scheduled to be run next and at what time
  4294.         it will run.  If you have no events defined, it just says "None."
  4295.  
  4296.         Below the Next Event Indicator, to the left, is a summary of the
  4297.         day's activity.  Some information about what happened yesterday is
  4298.         also shown, in parentheses.  This summary informs you of the total
  4299.         number of calls to date, the number of calls today (and yesterday),
  4300.         the number of connections today (and yesterday) - including those
  4301.         that don't result in an actual logon, the number of messages posted
  4302.         today (and yesterday), the number of files uploaded today (and
  4303.         yesterday), the number of files downloaded today (and yesterday),
  4304.         the time of the last connection, and the total number of user
  4305.         records in NANOBBS.USR.
  4306.  
  4307.         To the right of the daily summary is a log of the last eight calls
  4308.         to the BBS, including the node number, the username of the caller,
  4309.         the baud rate the user was calling at, the time of the call, and
  4310.         the number of times that user has called in total.
  4311.  
  4312.  
  4313.  
  4314.  
  4315.  
  4316.  
  4317.  
  4318.  
  4319.  
  4320.         NanoBBS 1.16 Documentation                              Page 72
  4321.  
  4322.         There are several keys you can use to perform various functions in
  4323.         the WFC.  In brief, they are:
  4324.  
  4325.                 Alt-C - This toggles the "CD-ROM Out" flag so that users
  4326.                         cannot download or list files on your CD-ROMs.
  4327.                         This way, you can use your CD-ROM drive for other
  4328.                         purposes temporarily - perhaps to play a game or
  4329.                         set up a new CD.
  4330.  
  4331.                 Alt-E - This invokes the User Editor.  The user editor
  4332.                         allows you to edit every important field in each
  4333.                         user's record.  See the next chapter for details on
  4334.                         the User Editor.
  4335.  
  4336.                 Alt-H - This hangs up the modem.  If you have Caller ID and
  4337.                         you can see on the display that someone undesirable
  4338.                         is trying to connect, you can hang up on them
  4339.                         before the modems have even finished negotiating.
  4340.                         Or, if (for whatever reason) the BBS exits without
  4341.                         hanging up, you can use this to quickly hang up.
  4342.  
  4343.                 Alt-I
  4344.                   or
  4345.                 Alt-R - Either of these keys will re-initialize the modem.
  4346.                         Some modems don't always reset properly, with this
  4347.                         key you can force a re-initialization and then use
  4348.                         the modem viewport and status display to verify
  4349.                         that the modem is initialized properly.
  4350.  
  4351.                 Alt-L - Local logon.  This lets you log on just like a
  4352.                         user, only all input and output is to the local
  4353.                         console only rather than to the modem.
  4354.  
  4355.                 ESC   - Escape to DOS.
  4356.  
  4357.  
  4358.  
  4359.  
  4360.  
  4361.  
  4362.  
  4363.  
  4364.  
  4365.  
  4366.  
  4367.  
  4368.  
  4369.  
  4370.  
  4371.  
  4372.  
  4373.  
  4374.  
  4375.  
  4376.  
  4377.  
  4378.  
  4379.  
  4380.         NanoBBS 1.16 Documentation                              Page 73
  4381.  
  4382.         ╔═╦═══════════════════════════╦═╗
  4383.         ║ ║ A TOUR OF THE USER EDITOR ║ ║
  4384.         ╚═╩═══════════════════════════╩═╝
  4385.  
  4386.         The NanoBBS internal User Editor is a convenient way to inspect and
  4387.         edit user accounts.
  4388.  
  4389.         When you enter the User Editor from the WFC, you are presented with
  4390.         a display of the first user record in the user file - normally your
  4391.         own.  However, if you enter the user editor while a caller is
  4392.         online, the editor shows you the user record for that user instead.
  4393.  
  4394.         There is a great deal of information shown in the user editor
  4395.         screen.  In the upper left hand corner, the user's record number
  4396.         and the total number of users is shown, along with the date and
  4397.         time of the first and most recent calls the user has made to your
  4398.         system.
  4399.  
  4400.         Below that is the editable information.  Each editable field is
  4401.         preceded with a key, shown in a 3-D highlight, which you can press
  4402.         to edit that field.  For example, to edit the user's username, hit
  4403.         the 1 key.  The user name field will turn red and blank out, and
  4404.         the cursor will appear there.  You can now type in a new name and
  4405.         hit Enter to store it, or you can skip it (preserving the name) by
  4406.         just hitting Enter.
  4407.  
  4408.         The fields are more or less self-explanatory, here is a list:
  4409.  
  4410.         [1] User Name.  This is the user's name or pseudonym, and is
  4411.             how the user is normally known to other callers.
  4412.  
  4413.         [2] Real Name.  This is the user's real name.  It can be the same
  4414.             as the User Name.  This is the name that is used in message
  4415.             areas that have the REALNAME keyword active, and is, of
  4416.             course, useful for security purposes.
  4417.  
  4418.         [3] Password.  This is the user's password to get into the system.
  4419.             Although the BBS requires users to select a password of four
  4420.             letters or more when they first log on, you can set the
  4421.             password to be any length in the User Editor.  You can even
  4422.             create "open" accounts that have no password, just by blanking
  4423.             the password out!
  4424.  
  4425.         [4] Location.  This is usually the city and state or province or
  4426.             country the user is calling from.  It's always nice to know
  4427.             when callers enjoy your system enough to call long distance.
  4428.  
  4429.         [5] Telephone Number.  This is self explanatory.  If a user ever
  4430.             loses her password or appears to have been hacked, you'll want
  4431.             to phone her.
  4432.  
  4433.         [6] Access Level.  This is the main way in which privilege is
  4434.             dispensed on a NanoBBS system.  Generally speaking, the higher
  4435.             the user's access level, the more she can do.  You can set
  4436.             minimum access levels for many functions in the BBS.  See
  4437.             LIMITS.CTL and the various message base and file area control
  4438.             files for more information.
  4439.  
  4440.         NanoBBS 1.16 Documentation                              Page 74
  4441.  
  4442.         [7] Birthdate.  This is stored as a string because DOS dates start
  4443.             in 1980.  The format is YY-MM-DD.
  4444.  
  4445.         [8] Sex.  This can be Male, Female or Undisclosed.  Hitting the 8
  4446.             key toggles between the three choices.  If a user is
  4447.             undisclosed, she will have some privacy but she will not be
  4448.             able to enter any message bases that are limited to one sex.
  4449.             Nobody said that privacy is without cost!
  4450.  
  4451.         [9] Keys.  There are 32 "keys" which are just boolean flags - on or
  4452.             off.  They are designated by a letter or number, 0 to 9 and A
  4453.             to V.  They are used to give access to certain functions to
  4454.             specific individuals regardless of (or in concert with) the
  4455.             access level.  To edit this just hit 9 and type all the keys
  4456.             you want turned on, leaving out the keys you want off.
  4457.  
  4458.         [A] Downloads.  This is the number of kilobytes the user has
  4459.             downloaded.  It is with this field that you can identify
  4460.             "leeches."
  4461.  
  4462.         [B] Uploads.  This is the number of kilobytes the user has
  4463.             uploaded.
  4464.  
  4465.         [C] Downloads Today.  This is the number of kilobytes the user
  4466.             downloaded today, or if she has not called today, then it is
  4467.             the number of kilobytes downloaded on the last date the user
  4468.             did call.
  4469.  
  4470.         [D] Total Calls.  This is the number of times the user has logged
  4471.             onto your BBS.  As the sysop, you yourself will probably have
  4472.             the highest "total calls" count in the user file.
  4473.  
  4474.         [E] Calls Today.  This is the number of times the user has called
  4475.             the BBS today, or if she has not called today, then it is the
  4476.             number of times she called on the last date on which she did
  4477.             call.
  4478.  
  4479.         [F] Time Today.  This is the number of minutes the user has been
  4480.             online today, or on the last date on which the user called.
  4481.  
  4482.         [G] Columns.  This is simply the number of columns - the screen
  4483.             width.  For most callers it should be 80.
  4484.  
  4485.         [H] Lines.  This is the number of lines to be displayed between
  4486.             pauses (the "More? (Y/N)" prompts).  This is usually 24.
  4487.  
  4488.         [I] Messages Posted.  This is the total number of messages the user
  4489.             has entered.
  4490.  
  4491.         [J] Account Expiry.  This is the date the user's account "expires"
  4492.             - or is transformed according to the relevant entry in
  4493.             EXPIRY.CTL.  See EXPIRY.CTL for more information.  If this is
  4494.             set to 70/01/01 (in other words, a value of zero) then the user
  4495.             will never expire.
  4496.  
  4497.  
  4498.  
  4499.  
  4500.         NanoBBS 1.16 Documentation                              Page 75
  4501.  
  4502.         [K] Account Credit.  If you have the "Credit System" option set in
  4503.             your NODE1.CTL and other config files, then this field holds
  4504.             the amount of credit remaining.  It is expressed in cents.
  4505.  
  4506.         [L] Time Bank Balance.  Users can deposit time into a "time bank"
  4507.             for later use when they're caught short.  This field is the
  4508.             number of minutes the user has stored.
  4509.  
  4510.         [F1] This is the "Suspended" key.  It (with the other F-Keys) is a
  4511.              toggle between "on" and "off".  When "on" the user may not log
  4512.              on, but the account is otherwise untouched.
  4513.  
  4514.         [F2] This is the "No Limit" key.  The user can download as long as
  4515.              she wants and she will never run out of time.  Use this toggle
  4516.              exceedingly sparingly!
  4517.  
  4518.         [F3] This is the "No Ratio" key.  The user is not subject to
  4519.              upload/download ratios and may download until her modem
  4520.              croaks.
  4521.  
  4522.         [F4] This is the "Rodent" key.  All it does is refrain from
  4523.              sounding the chat paging noise when the user tries to page.
  4524.              Most useful for annoying users who, for one reason or another,
  4525.              you don't want to take more drastic action against.
  4526.  
  4527.         [F5] This key toggles ANSi graphics on and off.
  4528.  
  4529.         [F6] This is the "Toast" key.  This key allows the user to log on
  4530.              one last time.  Before she gets to the main menu prompt,
  4531.              however, a message is displayed stating that "This account has
  4532.              been terminated by the management" (you can make it more or
  4533.              less diplomatic as you choose) and then the user is
  4534.              disconnected and the account is deleted.  This is to be used
  4535.              when you want a user to -know- she's been deleted - simply
  4536.              deleting a user might leave them wondering if they've
  4537.              forgotten the password.
  4538.  
  4539.         [F7] This key toggles whether or not NanoBBS will check for
  4540.              personal mail for the user each time she logs on.
  4541.  
  4542.         [F8] This key toggles whether the user uses the Full Screen Editor
  4543.              or the Line Editor when entering messages.
  4544.  
  4545.         [Del] This key marks the user "deleted."  The user's account isn't
  4546.               really physically erased, but the user can no longer log on
  4547.               and the account is subject to being overwritten by new users.
  4548.               If you change your mind before a new user account overwrites
  4549.               this one, you can toggle the delete bit off with the same
  4550.               key.
  4551.  
  4552.         That's it for the editable fields!  There are some more keys,
  4553.         though, and they are:
  4554.  
  4555.         Left-arrow
  4556.            and
  4557.         Right-arrow: The arrow keys let you move to the next or previous
  4558.                      user record.
  4559.  
  4560.         NanoBBS 1.16 Documentation                              Page 76
  4561.  
  4562.         Home and End: These keys select the first and last record
  4563.                       respectively.
  4564.  
  4565.         Alt-S: This prompts to search for a user.  The first time you use
  4566.                this key, NanoBBS needs you to enter a name or partial name
  4567.                to search for.  After that, if you just hit [Enter] at the
  4568.                name-search prompt, it will continue looking for the same
  4569.                string.
  4570.  
  4571.         Alt-B: This "blanks out" the currently shown user record, but as a
  4572.                safety measure it will only do this if you have already
  4573.                marked the account "deleted".
  4574.  
  4575.         Alt-R: This "reviews" new users.  The BBS quasi-intelligently
  4576.                determines which users are "new" to the system and displays
  4577.                a few important characteristics about each new user,
  4578.                prompting you to promote, erase, skip or edit each one.
  4579.  
  4580.         [S]:   This swaps the user's real name and username.  Sometimes
  4581.                users get these mixed up.  Here you have a one-key fix!
  4582.  
  4583.         [X]:   This "mixedcases" the real name and username.  Sometimes
  4584.                users enter their information in uppercase characters,
  4585.                resulting in a very unpretty user record.  And here you have
  4586.                another one-key fix.
  4587.  
  4588.         [Ins]: This creates a new blank record at the end of the user file.
  4589.                You have to edit its parameters before it'll be much use to
  4590.                anyone.
  4591.  
  4592.         [?]  : Hit ? to get a trippy tie-dyed help screen!
  4593.  
  4594.         [Esc]: Hit Escape to get out of the user editor.
  4595.  
  4596.  
  4597.  
  4598.  
  4599.  
  4600.  
  4601.  
  4602.  
  4603.  
  4604.  
  4605.  
  4606.  
  4607.  
  4608.  
  4609.  
  4610.  
  4611.  
  4612.  
  4613.  
  4614.  
  4615.  
  4616.  
  4617.  
  4618.  
  4619.  
  4620.         NanoBBS 1.16 Documentation                              Page 77
  4621.  
  4622.         ╔═╦════════════════════════════════════════════════╦═╗
  4623.         ║ ║ A Tour of NanoBBS's canned main menu interface ║ ║
  4624.         ╚═╩════════════════════════════════════════════════╩═╝
  4625.  
  4626.     Here is an explanation of each of the main menu commands. This
  4627.     is taken directly from the MAINHELP.TXT file which is displayed
  4628.     to users who select the "H" (detailed help) option.  Because of
  4629.     this, the help is written in a to-the-user perspective.
  4630.  
  4631.     "A" - Jump to a message area.
  4632.  
  4633.     This changes the message area, and is directly synonymous with
  4634.     the "J" command.  It is included for the benefit of callers who
  4635.     are used to using "A" to change areas on other BBSes.  See
  4636.     the "J" command help (coming up) for more information.
  4637.  
  4638.     "C" - Page SysOp to Chat
  4639.  
  4640.     This option will, during reasonable hours, cause NanoBBS to
  4641.     play a little tune to get the sysop's attention.  It is only
  4642.     necessary to page once as a flashing yellow "Paged" will appear
  4643.     on the sysop's console until you log off.  The sysop can set
  4644.     the hours during which this option will make noise, so it's
  4645.     probably not a good idea to page late at night.
  4646.  
  4647.     If the Sysop notices that you have paged, and feels like
  4648.     chatting, s/he'll activate "chat mode" which will allow you to
  4649.     communicate directly with the sysop in real time by typing back
  4650.     and forth at one another.
  4651.  
  4652.     "D" - DOORS - Games and other external programs
  4653.  
  4654.     This option will present you with a menu of "doors."
  4655.  
  4656.     Doors are external programs which the BBS can call up for you to
  4657.     use.  Most doors are multi-player games.  Some of the most
  4658.     popular door games are Barren Realms Elite, Tradewars, Galactic
  4659.     Empire and Rancho Nevada.  Each game has its own set of rules
  4660.     and features, and help is (hopefully) available in each one.
  4661.     Detailed help with doors is beyond the scope of this document;
  4662.     ask your sysop or, if there is a message base dedicated to the
  4663.     doors, post a public message there and someone will likely have
  4664.     an answer to your question.
  4665.  
  4666.     "E" - EMAIL - Non-public "electronic mail"
  4667.  
  4668.     This option allows you to send and check for "electronic mail"
  4669.     to other users.  NanoBBS's e-mail technology is such that true
  4670.     privacy cannot be guaranteed - the sysop can and probably does
  4671.     read any email on the BBS!  However other users cannot read
  4672.     email that is not addressed to them.  If privacy is a concern,
  4673.     you should use a program like PGP to encrypt your private mail
  4674.     before sending it to the BBS.  Make sure your sysop allows
  4675.     encrypted messages before you try this!
  4676.  
  4677.  
  4678.  
  4679.  
  4680.         NanoBBS 1.16 Documentation                              Page 78
  4681.  
  4682.         "F" - FILES - File Transfers
  4683.  
  4684.     On most BBSes this is the most popular place!  This is where you
  4685.     can "download" programs, pictures and textfiles (and much more)
  4686.     from the BBS to your computer!    You can also "upload" files from
  4687.     your computer to the BBS, which will improve your
  4688.     "download:upload ratio" which the sysop can use to limit
  4689.     excessive downloading.    NanoBBS has seven widely-used transfer
  4690.     protocols, and supports advanced features like batch transfers
  4691.     (many files downloaded or uploaded at once) and new-file scans!
  4692.     More help is available at the file transfer menu.
  4693.  
  4694.     "G" - GOODBYE - Log off the BBS
  4695.  
  4696.     Use this command when you are finished using the BBS and want to
  4697.     log off.  NanoBBS is robust software; you could just hang up and
  4698.     nothing would be damaged, but it is considered impolite to log
  4699.     off that way, so please use "G"oodbye to log off!  This command
  4700.     is available at most menu prompts in the system for your
  4701.     convenience.
  4702.  
  4703.     "H" - HELP - Advanced Help.
  4704.  
  4705.     Advanced Help is what you are reading now.
  4706.  
  4707.     "I" - INFORMATION - Information on various topics
  4708.  
  4709.     This option presents you with a menu of information files for
  4710.     your enlightenment and entertainment.  Since this section of the
  4711.     BBS is entirely defined by the Sysop it could contain nearly
  4712.     anything, but normally this will have information about the BBS,
  4713.     its rules, how to subscribe, perhaps a list of other BBSes, etc.
  4714.  
  4715.     "A",
  4716.     "J" - JUMP - "Jump" to another message area
  4717.  
  4718.     This option lets you select which message area you are reading.
  4719.     Most BBSes separate messages into "areas" by subject matter, so
  4720.     if you wish to read messages on a particular subject, use this
  4721.     command to select that subject.  These groupings of message
  4722.     topics are called "message areas".
  4723.  
  4724.     "K" - KILL - "Kill" or erase a message
  4725.  
  4726.     This option lets you erase messages written by you.  It may
  4727.     occur that you write a message which you later want to erase
  4728.     (for example, you posted a message with hockey scores or other
  4729.     information which you later find out to be incorrect).    This
  4730.     command can be a real life-saver in some situations!
  4731.  
  4732.     "L" - LIST CALLS - Display a list of all today's calls to the BBS
  4733.  
  4734.     This option lets you see a list of everyone who's called the BBS
  4735.     since midnight.  This is simply for your information.
  4736.  
  4737.  
  4738.  
  4739.  
  4740.         NanoBBS 1.16 Documentation                              Page 79
  4741.  
  4742.         "N" - NEW SCAN - Globally scan for new messages
  4743.  
  4744.     This is an extremely powerful messaging command!  It displays
  4745.     every new message entered since your last call, in every message
  4746.     area.  You can re-read or reply to any of the messages
  4747.     displayed.
  4748.  
  4749.     "O" - OPTIONS - User config options
  4750.  
  4751.     This option gives you a menu of options you can set.  It lets
  4752.     you configure the way the BBS looks and behaves when you call.
  4753.     For example, you can change screen size, turn colour on or off,
  4754.     or even change your password!
  4755.  
  4756.     "P" - POST - Post or enter a message in the current message area
  4757.  
  4758.     This command lets you enter a new message in the current file
  4759.     area.  You will be prompted for a subject (for example, if you
  4760.     are posting in the fishing echo, you might enter a subject
  4761.     something like "question about bait".  The subject is a very
  4762.     brief summary of the message to make it easy for other users to
  4763.     quickly find messages they are interested in.
  4764.  
  4765.     You will also be prompted for an intended recipient.  You can
  4766.     put any person's name or handle here, or if the person is a
  4767.     member of the BBS, you can enter their user number.  You can
  4768.     also just enter "All" if the message is public and you aren't
  4769.     sending it to any particular person.
  4770.  
  4771.     After that, you will be able to type in your message.  The
  4772.     message editors have advanced help screens of their own.  Once
  4773.     you are done entering your message, you can save it, edit it, or
  4774.     drop it ("abort").
  4775.  
  4776.     "Q" - QWK OPTIONS - Interface with the message base via a QWK
  4777.                 reader
  4778.  
  4779.     If you have a QWK message reader, you can save a lot of time by
  4780.     downloading messages and reading them off-line in your message
  4781.     reader.  You can also reply to these messages in the reader and
  4782.     upload your replies.  This has the advantage of letting you use
  4783.     your favourite message editor to enter messages instead of the
  4784.     BBS's line and full-screen editors.  It also saves more online
  4785.     time for downloading, playing games, and even for letting other
  4786.     users into the BBS!  If you don't have a QWK message reader, you
  4787.     will need one for this menu to be of use to you.  Your sysop may
  4788.     have one or more reader software packages available for you to
  4789.     download; if not, try another BBS, such software is widely
  4790.     available!
  4791.  
  4792.     "R" - READ MESSAGES - Read messages in the current area
  4793.  
  4794.     This lets you read and reply to messages in the current message
  4795.     area.
  4796.  
  4797.  
  4798.  
  4799.  
  4800.         NanoBBS 1.16 Documentation                              Page 80
  4801.  
  4802.         "S" - SETUP SCANS - Set up the areas you want included in
  4803.                 message scans.
  4804.  
  4805.     This lets you define which areas should be included when you do
  4806.     a global [N]ew scan or download messages from the [Q]wk menu. By
  4807.     default ALL messages that you have access to are turned on.
  4808.  
  4809.     "U" - USER LIST - Display a list of users
  4810.  
  4811.     This command lets you look up users on the BBS.  It will tell
  4812.     you the user number of a particular user, when s/he last called,
  4813.     and where they are from.  You can enter a partial username to do
  4814.     a search for one or more users, or you can just hit Enter and
  4815.     get a list of every user on the system!
  4816.  
  4817.     "W" - WHO'S ONLINE
  4818.  
  4819.     If the BBS has more than one line and the sysop has enabled
  4820.         multi-user operation, this will let you know who is also using
  4821.     the BBS on the other nodes.  It will also let you know roughly
  4822.     what they are doing and how long they've been online.
  4823.  
  4824.     "Y" - YOUR STATISTICS
  4825.  
  4826.     This command displays practically everything the BBS knows about
  4827.     you.  It will tell you how much you have uploaded, downloaded,
  4828.     and posted, how much time you have banked and how much netmail
  4829.     credit you have left, how many days are left in your
  4830.     subscription, your access level, and much more!  If you have a
  4831.     question about your account, check this command before you ask
  4832.     your sysop.
  4833.  
  4834.     "/" - NanoCHAT - Enter the multi-user chat system!
  4835.  
  4836.     If the BBS has more than one line and if the SysOp has enabled
  4837.     multi-line operation, this command will take you into the
  4838.     NanoCHAT multi-user chat system!  There is ample help available
  4839.     on the particulars of multi-user chat once you get into that
  4840.     section.
  4841.  
  4842.     "?" - COMMAND SUMMARY - Get a quick list of commands
  4843.  
  4844.     This command is the quick way to remind yourself of the
  4845.     command key for a particular function.
  4846.  
  4847.     "!" - BANG PROMPT - Change the "Bang" prompt
  4848.  
  4849.     This lets you change the one-line message displayed at the main
  4850.     menu command prompt.  It is called the "bang" prompt because the
  4851.     exclamation point key used to invoke it is sometimes called a
  4852.         "bang"...
  4853.  
  4854.         "[", "]", "0"..."65535" - QUICK AREA CHANGE
  4855.  
  4856.     In addition to the formal [J] command (change area) mentioned
  4857.     previously, NanoBBS also has two ways to quickly change message
  4858.  
  4859.  
  4860.         NanoBBS 1.16 Documentation                              Page 81
  4861.  
  4862.         areas right from the main menu.  The open and close square
  4863.     brackets move you down and up one area respectively.  Or, you
  4864.         can type in the area number directly.  NanoBBS will let you type
  4865.     in up to 5 digits for the area number when it detects that a
  4866.     number key has been pressed!
  4867.  
  4868.  
  4869.  
  4870.  
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879.  
  4880.  
  4881.  
  4882.  
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888.  
  4889.  
  4890.  
  4891.  
  4892.  
  4893.  
  4894.  
  4895.  
  4896.  
  4897.  
  4898.  
  4899.  
  4900.  
  4901.  
  4902.  
  4903.  
  4904.  
  4905.  
  4906.  
  4907.  
  4908.  
  4909.  
  4910.  
  4911.  
  4912.  
  4913.  
  4914.  
  4915.  
  4916.  
  4917.  
  4918.  
  4919.  
  4920.         NanoBBS 1.16 Documentation                              Page 82
  4921.  
  4922.         ╔═╦═════════════════════════════════════════════╦═╗
  4923.         ║ ║                Language Files               ║ ║
  4924.         ║ ║ Customize (almost) all of NanoBBS's Output! ║ ║
  4925.         ╚═╩═════════════════════════════════════════════╩═╝
  4926.  
  4927.         NanoBBS has the capacity to be a fully multi-lingual BBS.  It
  4928.         offers the additional flexibility of having separate ANSI/ASCII
  4929.         and RIP versions of each language.  There can be up to 32
  4930.         languages.  See the section titled "The Configuration File" for
  4931.         information on configuring your language files.
  4932.  
  4933.         NanoBBS comes with two language files, but they are not "ready"
  4934.         when you unpack the BBS.  These two language files are the
  4935.         ANSI/ASCII and RIPscrip versions of the standard English text
  4936.         for NanoBBS.  All language files come in pairs, an ANSI/ASCII
  4937.         version and a RIPscrip version.  If the user has RIP but NanoBBS
  4938.         can't find the RIP version of the language file, it'll try to
  4939.         fall back on the ANSI/ASCII version instead.
  4940.  
  4941.         The NanoBBS distribution archive stores the default language as
  4942.         "Update" files, called ENGLISH.UPD for the ASCII/ANSI version
  4943.         and ENGLISH.RPD for the RIPscrip version.  When you run
  4944.         INSTALL.BAT, these files are copied into the ENGLISH.TXL and
  4945.         ENGLISH.RXL files, which are the raw language source files.  The
  4946.         UPDLNG.EXE program is used to update the language files, so that
  4947.         new versions of the BBS with additional language strings can be
  4948.         integrated with your existing custom language files.
  4949.  
  4950.         All language files end in either .TXL for the "Text" version
  4951.         (the ANSI/ASCII version) and .RXL for the "Rip" version.  These
  4952.         files are like the system configuration files in that NanoBBS
  4953.         cannot use them by themselves.  They must be "compiled."  The
  4954.         program which does this is the NCOMP.EXE program.
  4955.  
  4956.         To compile the English language files, just type
  4957.  
  4958.                 NCOMP ENGLISH
  4959.  
  4960.         at the DOS prompt.   It will compile both the ANSI/ASCII and the
  4961.         RIP versions of the ENGLISH languagefile.  It creates a pair of
  4962.         files for each version.  ENGLISH.LNG and ENGLISH.RNG are the
  4963.         actual compiled text for each version of the language files, and
  4964.         ENGLISH.LDX and ENGLISH.RDX contain the index pointers NanoBBS
  4965.         needs to find the language strings within the .LNG and .RNG
  4966.         files.
  4967.  
  4968.         The .LNG and .RNG files are loaded whole into memory for maximum
  4969.         speed.  Because of this, there is a maximum size of 65520 bytes.
  4970.         If NCOMP compiles a .LNG or .RNG and the resulting file is
  4971.         bigger than 65520 bytes, it'll be unceremoniously truncated, and
  4972.         calls to chopped-off strings will have unpredictable results.
  4973.         Caveat SysOp!
  4974.  
  4975.         Like the configuration files, the .TXL and .RXL files are just
  4976.         plain ASCII text files.  Colour and RIP graphics are achieved by
  4977.         means of embedded colour codes and RIP UFO keywords.  See the
  4978.  
  4979.  
  4980.         NanoBBS 1.16 Documentation                              Page 83
  4981.  
  4982.         next chapter, "Embedded Colour and Effect Codes", for much more
  4983.         information about these codes and how to use them.
  4984.  
  4985.         Of the UFO keywords, only those dealing with RIPscrip are
  4986.         supported in the language files.  You cannot use UFO system
  4987.         variables in the language file with RIPscrip tokens but you can
  4988.         use numeric constants.  RIPscrip tokens should not be used in
  4989.         the ANSI/ASCII .TXL file.
  4990.  
  4991.         If you need to be able to access the resources of a UFO script
  4992.         from within a language file string, an embedded command exists
  4993.         that will let you "link" to a UFO script.  See the Embedded
  4994.         Colour and Effect Codes chapter, and UFO.DOC, for more
  4995.         information.
  4996.  
  4997.         Here are the first few strings from ENGLISH.TXL, with brief
  4998.         explanations:
  4999.         
  5000.  
  5001.         [languagefile english]
  5002.  
  5003.         [comment the language file must begin with a "languagefile"
  5004.          statement as above, which indicates the language this file
  5005.          represents.  Other languages might have a "languagefile
  5006.          francais" or "languagefile deutsch" line instead.]
  5007.  
  5008.         [comment comments appear in a comment statement like this.  All
  5009.          comments must begin and end with square brackets as this one
  5010.          does.]
  5011.  
  5012.         [comment this is the first system message in the file.  Although
  5013.          other strings can be physically located in random order, this
  5014.          must be physically the first string.  It indicates an error
  5015.          condition, that a system string was not found.  The ~. (tilde
  5016.          period) embedded command indicates the system string number in
  5017.          question. ]
  5018.  
  5019.         [sysmsg 1]
  5020.         ~PSysMsg Error!  Message ~. does not appear in the language file!
  5021.         Please report to sysop!
  5022.         [end]
  5023.  
  5024.  
  5025.         [comment this is used at logon to ask the user for a password.
  5026.          Note the use of embedded commands.  The ~@ (tilde at-sign)
  5027.          forces non-stop mode on for the duration of the string, the ~M
  5028.          (tilde M) sets the colour to a nice light blue colour, and the
  5029.          ~■ (tilde, followed by ASCII 254) is a special effect which
  5030.          makes a nice prompt.]
  5031.  
  5032.         [sysmsg 2]~@
  5033.         ~MPassword ~■[end]
  5034.  
  5035.         [comment This is displayed when the user gets the wrong password
  5036.          at logon.  Note the use of a ~V1 embedded command.  This is a
  5037.          variable parameter which is context sensitive.  In this string,
  5038.  
  5039.  
  5040.         NanoBBS 1.16 Documentation                              Page 84
  5041.  
  5042.          it contains the number of tries the user has made at guessing
  5043.          the password.  It might have some totally different value or
  5044.          might not even be a number in other strings.  But in this case
  5045.          it's a retry counter provided for your convenience.]
  5046.  
  5047.         [sysmsg 3]
  5048.         ~JPassword incorrect. ~G(Try #~L~V1~G)[end]
  5049.  
  5050.         [comment This asks the user for a username, pseudonym, real
  5051.          name, user number, NEW or BYE.  In the case of NEW NanoBBS will
  5052.          take the caller through the new-user signup procedure.  In the
  5053.          case of BYE, NanoBBS will immediately hang up.  If the user is
  5054.          not found, NanoBBS will ask if the spelling is correct - if it
  5055.          is, NanoBBS goes through the new-user signup.  Otherwise it
  5056.          goes back to this string and asks the user again.]
  5057.  
  5058.         [sysmsg 4]~@
  5059.         ~MNew Users: Just type your name or pseudonym to log on!
  5060.         ~OPlease enter your Name, User Number or Handle ~■[end]
  5061.  
  5062.         [comment Here's the string that asks the user if she is a
  5063.          new user.  This is displayed when the user's name or number is
  5064.          not found.
  5065.  
  5066.          Note the use of ~V1.  In this case it contains the username
  5067.          that was entered at the sysmsg 4 prompt.  Totally different
  5068.          from its value in the "Password Incorrect" string!  That's what
  5069.          I mean by "context sensitive."]
  5070.  
  5071.         [sysmsg 9]~@
  5072.  
  5073.         ~L~V1 ~Gnot found.  Do you want to register as a new member? [end]
  5074.  
  5075.         ┌───────────────────────────────────────────────────┐
  5076.         │ Special Embedded Commands for Language Files Only │
  5077.         └───────────────────────────────────────────────────┘
  5078.  
  5079.         The following is a long list of special embedded commands that
  5080.         you will find useful - many are already in use in the language
  5081.         files.  These commands resemble the embedded colour commands
  5082.         used throughout NanoBBS, but these commands can only be used in
  5083.         the language file.  See the next chapter, "Embedded Colour and
  5084.         Effect Codes" for more information on using and entering
  5085.         embedded codes.
  5086.  
  5087.  
  5088.         ~mF : Displays the "From:" (sender) of the current message
  5089.         ~mT : Displays the "To:" (recipient) of the current message
  5090.         ~mS : Displays the Subject of the current message
  5091.         ~mH : Displays the time of the current message
  5092.         ~mD : Displays the date of the current message
  5093.         ~mR : Displays the number of the message to which this one is a reply
  5094.         ~mA : Displays the Number of the Next Reply to the current message
  5095.         ~mC : Displays the Fido Cost (if any) of the current message
  5096.         ~mO : Displays the Fido Origin Address of the Current Message
  5097.         ~mP : Displays the Fido Destination of the Current Message
  5098.  
  5099.  
  5100.         NanoBBS 1.16 Documentation                              Page 85
  5101.  
  5102.         ~mX : Displays Message Number of the Current Message
  5103.         ~mY : Displays Message Area's number
  5104.         ~mZ : Displays Message Area's name
  5105.         ~m1 : Indicates if the current message is private
  5106.         ~m2 : Indicates if the current message has been read
  5107.  
  5108.         ~q1 : Displays the time of day in 12-hour HH:MM format
  5109.         ~q2 : Displays the time of day in 12-hour HH:MM:SS format
  5110.         ~q3 : Displays the time of day in 24-hour HH:MM format
  5111.         ~q4 : Displays the time of day in 24-hour HH:MM:SS format
  5112.         ~q5 : Displays am if time is 00:00-11:59, pm if time is 12:00-23:59
  5113.         ~q6 : Displays the time of day in MM:SS format
  5114.         ~q9 : Displays the user's time left in 24-hour HH:MM format
  5115.         ~qA : Displays the user's time left in 24-hour HH:MM:SS format
  5116.         ~qC : Displays the user's time left in MM:SS format
  5117.         ~qF : Displays the user's time online in 24-hour HH:MM format
  5118.         ~qG : Displays the user's time online in 24-hour HH:MM:SS format
  5119.         ~qI : Displays the user's time online in MM:SS format
  5120.  
  5121.         ~u1 : Displays the user's username
  5122.         ~u2 : Displays the user's real name
  5123.         ~u3 : Displays a pseudo-intelligently determined first name of the
  5124.               user from the username.  Words like "The" and "Mr." don't
  5125.               count.
  5126.         ~u4 : Displays the user's gender
  5127.         ~u5 : Displays the user's birthdate
  5128.         ~u6 : Displays the user's city/location
  5129.         ~u7 : Displays the user's phone number
  5130.         ~u8 : Displays the user's per-call time limit
  5131.         ~u9 : Displays the user's per-day time limit
  5132.         ~u0 : Displays the user's required upload/download ratio
  5133.         ~uA : Indicates if the user has clear-screens activated
  5134.         ~uB : Displays the user's access level
  5135.         ~uC : Displays the user's downloads in kilobytes
  5136.         ~uD : Displays the user's uploads in kilobytes
  5137.         ~uE : Displays the user's downloads today in kilobytes
  5138.         ~uF : Displays the total number of calls the user has made to
  5139.               the system
  5140.         ~uG : Displays the number of calls the user has made to the
  5141.               system today
  5142.         ~uH : Displays the amount of time the user has been online today in
  5143.               previous calls, but not including this call.
  5144.         ~uI : Indicates if the user has ANSI turned on
  5145.         ~uJ : Displays the number of messages the user has posted
  5146.         ~uK : Displays the user's actual call:post ratio
  5147.         ~uL : Displays the user's actual download:upload ratio
  5148.         ~uM : Displays the number of columns the user has set
  5149.         ~uN : Displays the number of lines the user has set
  5150.         ~uO : Displays the user's expiry date (if any)
  5151.         ~uP : Displays the number of days until the user's expiry
  5152.         ~uQ : Indicates if the user has no limits
  5153.         ~uR : Indicates if the user has no required ratios
  5154.         ~uS : Displays the date and time of the user's first call
  5155.         ~uT : Displays the date and time of the user's most recent call
  5156.         ~uU : Displays the user's user number
  5157.         ~uV : Displays the verbal description (from LIMITS.CTL) of the
  5158.               user's access level
  5159.  
  5160.         NanoBBS 1.16 Documentation                              Page 86
  5161.  
  5162.         ~uW : Displays the user's maximum daily download limit in kilobytes
  5163.         ~uX : Indicates whether the user has "More?" prompts activated
  5164.         ~uY : Indicates if the user is checking for new mail at each logon
  5165.         ~uZ : Inidcates if the user has linefeeds activated (should
  5166.               always be Yes!)
  5167.         ~u& : Indicates if the user has the Full Screen Editor activated
  5168.         ~u, : Displays the language selected by the user
  5169.         ~u; : Displays the user's preferred archiver method
  5170.         ~u. : Displays the user's preferred transfer protocol
  5171.  
  5172.         ╔═╦══════════════════════════════════╦═╗
  5173.     ║ ║ Embedded Colour and Effect Codes ║ ║
  5174.     ╚═╩══════════════════════════════════╩═╝
  5175.  
  5176.     These are available in both the UFO script language and as
  5177.     embedded commands in the language files!  Just type in the
  5178.     command as shown below - they all start with the ~ tilde
  5179.     character.  On most enhanced AT keyboards, the tilde is the key
  5180.     to the left of the 1 key, a shifted back-quote.  The following
  5181.     diagram illustrates where the Tilde key is located...
  5182.  
  5183.     LOCATION OF THE TILDE KEY ON (MOST) AT KEYBOARDS: ─┐
  5184.     (Remember this is a SHIFTed key!)           │
  5185.      ┌─────────────────────────────────────────────────┘
  5186.      │
  5187.      │     ___ ___ ___ ___ ___ ___ ___ ___
  5188.      └─>  | ~ | ! | @ | # | $ | % | ^ |
  5189.           |_`_|_1_|_2_|_3_|_4_|_5_|_6_|_
  5190.           |     |Q    |W  |E    |R  |T    |
  5191.           |_Tab_|___|___|___|___|___|_
  5192.           | Caps |A  |S  |D  |
  5193.           |_Lock_|___|___|___|__
  5194.           |        |
  5195.           |_Shift__|  <───── Remember to use the Shift key!
  5196.  
  5197.  
  5198.       COLOURS:
  5199.  
  5200.       background      foreground
  5201.  
  5202.       ~a Black       ~A Black       ~I DkGray
  5203.       ~b Red       ~B Red       ~J LtRed
  5204.       ~c Green       ~C Green       ~K LtGreen
  5205.       ~d Brown       ~D Brown       ~L Yellow
  5206.       ~e Blue       ~E Blue       ~M LtBlue
  5207.       ~f Magenta       ~F Magenta       ~N LtMagenta
  5208.       ~g Cyan       ~G Cyan       ~O LtCyan
  5209.       ~h Lt.Gray       ~H LtGray       ~P White
  5210.  
  5211.       Special ANSi functions and effects:
  5212.  
  5213.       ~1          Clear to End of Line
  5214.       ~6          Blink On
  5215.       ~7          Clear Attributes
  5216.  
  5217.  
  5218.  
  5219.  
  5220.         NanoBBS 1.16 Documentation                              Page 87
  5221.  
  5222.           Fade-in:     ~< Start    ~> End
  5223.           Gray 3D:     ~( Start    ~) End
  5224.           Cyan 3D:     ~{ Start    ~} End
  5225.           Prompt :     ~■ (ASCII 254)
  5226.  
  5227.       Embedded CR/LF:            ~/
  5228.       Nondestructive clear to beginning:    ~\
  5229.       Destructive clear to beginning:    ~|
  5230.  
  5231.       Do a CR/LF only if the cursor is
  5232.       not already at the leftmost column:    ~,
  5233.  
  5234.         The following embedded commands are ONLY available in the language
  5235.         file, and may be interpreted literally or give strange results if
  5236.         used in a .UFO script:
  5237.  
  5238.       "Hit Any Key" prompt                  ~R
  5239.       Send a random cookie:         ~&
  5240.       Send the bang Prompt:         ~!
  5241.       Make output non-abortable:        ~@
  5242.       Send a beep (^G) to REMOTE user:    ~#
  5243.       Embedded CR only (no LF)        ~<
  5244.  
  5245.       Automatic two-column alignment:    ~>
  5246.       Automatic three-column alignment:    ~; {semicolon}
  5247.       Automatic five-column alignment:    ~` (backward apostrophe)
  5248.  
  5249.           Tab: ~tnn where nn is column,  e.g.   ~t45
  5250.         This example moves the cursor to
  5251.         column 45.
  5252.  
  5253.       Name of current message area:     ~i
  5254.       Number of current message area:    ~j
  5255.       Name of current file area:        ~n
  5256.       Number of current file area:        ~o
  5257.  
  5258.       Go to to another SysMsg:        ~k###
  5259.  
  5260.                 Example: ~k123  goes to SysMsg #123.  The SysMsg number
  5261.                 must be terminated with a non-numeric character.
  5262.  
  5263.       Call a UFO script (a .BBS file):    ~lfilename.bbs
  5264.  
  5265.                 Example: ~lextrahlp.bbs   runs a compiled UFO script called
  5266.                 EXTRAHLP.BBS.  The filename must be terminated with a
  5267.                 space.  This extremely powerful command effectively gives
  5268.                 you the full power of UFO from within language files!
  5269.  
  5270.       Languagefile Parameter (can be 1 to 9): ~Vx
  5271.  
  5272.         Example: ~V9 shows parameter 9.
  5273.              ~V1 shows parameter 1.
  5274.  
  5275.         These parameters are sensitive to context and have specific
  5276.         values for each SysMsg, or may be undefined if the SysMsg
  5277.         does not use parameters.  See the language files to get an
  5278.         idea of the context for each SysMsg's parameters.
  5279.  
  5280.         NanoBBS 1.16 Documentation                              Page 88
  5281.  
  5282.         ╔═╦═══════════════════════════════════════════════════════════╦═╗
  5283.     ║ ║ NanoCHAT - Setting up NanoBBS as a multi-user chat system ║ ║
  5284.     ╚═╩═══════════════════════════════════════════════════════════╩═╝
  5285.  
  5286.     ┌──────────────┐
  5287.     │ The IPC Disk │
  5288.     └──────────────┘
  5289.  
  5290.     IPCs are "Inter Process Communications", which are files shared
  5291.     between nodes in a multi-user system.  IPCs are the key to
  5292.     NanoCHAT's operation.
  5293.  
  5294.     NanoCHAT uses IPC files instead of shared memory schemes (which
  5295.     require special device drivers and are NOT always reliable) in
  5296.     order to make NanoCHAT runnable on nearly any system.  However,
  5297.     since communications are handled by passing files, DOS can
  5298.     impose quite a burden unless you take steps to speed the files
  5299.     up as much as possible.  The best way to do this is to use a
  5300.     RAM Disk.  This has the added advantage of not imposing a lot of
  5301.     wear on your hard disk.  A NanoCHAT system with several users
  5302.     online can easily created, write, read and then delete dozens of
  5303.     files per second.  The wear this would cause an uncached hard
  5304.     disk is extreme.  Therefore a RAM disk is essential.  The
  5305.     largest possible RAM Disk you can manage should bs used, and
  5306.     your RAMDRIVE.SYS line in CONFIG.SYS should stipulate a large
  5307.     number of files, perhaps 512 or 1024.
  5308.  
  5309.     If you're using a LAN and some of your BBS nodes are on a
  5310.     different machine from the RAM disk, make sure your RAM disk is
  5311.     set up as a network drive so that it is accessible.
  5312.  
  5313.     ┌───────────────────────────────────────────────────────────────┐
  5314.     │ To enable NanoCHAT and define the path to your RAM disk (or    │
  5315.     │ whatever other kind of disk you may choose to place your IPCs │
  5316.     │ on) you need to include the following lines in your NanoBBS    │
  5317.     │ config file (NODE1.CTL):                    │
  5318.     │                                │
  5319.     │ multiuser                            │
  5320.     │ ipcpath   f:\                         │
  5321.     │                                │
  5322.     │ The MULTIUSER command instructs NanoBBS to allow the use of    │
  5323.     │ multi-user chat and IPC related functions.            │
  5324.     │                                │
  5325.     │ The IPCPATH command specifies the drive and directory where    │
  5326.     │ the IPC files can be found.  It goes without saying that your │
  5327.     │ config files for each node must specify the same IPC path or    │
  5328.     │ else the nodes will not be able to communicate with one    │
  5329.     │ another.                            │
  5330.     └───────────────────────────────────────────────────────────────┘
  5331.  
  5332.         ┌───────────────────────────────────┐
  5333.     │ NanoCHAT configuration - CHAT.CTL │
  5334.     └───────────────────────────────────┘
  5335.  
  5336.      There are three options to the PROMPT option.    ON will display
  5337.      a colourful prompt to remind the user that s/he can type here.
  5338.  
  5339.  
  5340.         NanoBBS 1.16 Documentation                              Page 89
  5341.  
  5342.          OFF will more faithfully emulate Diversi-Dial and leave the
  5343.      user's cursor at the leftmost position with no prompt at all.
  5344.          TIME gives the user a unique prompt which displays the current
  5345.      time.
  5346.  
  5347.      prompt off
  5348.  
  5349.      ──────────────────────────────────────────────────────────────
  5350.  
  5351.          The timeout is the amount of time, in minutes, that the user
  5352.          can leave her keyboard idle before NanoCHAT will cut her off.
  5353.  
  5354.      timeout 10
  5355.  
  5356.  
  5357.      ──────────────────────────────────────────────────────────────
  5358.  
  5359.      This is the interval, in minutes, between automatic postings of
  5360.      the /M messages.
  5361.  
  5362.      msginterval 5
  5363.  
  5364.      ──────────────────────────────────────────────────────────────
  5365.  
  5366.      The SPEED command sets the interval between checks of the stack
  5367.      files. Generally speaking, this is the "heartbeat" of the
  5368.      program. The interval is in 100'ths of a second, so a speed of
  5369.      100 would mean that the stacks are checked once every second.
  5370.      A speed of 50 is twice a second and so forth.    If NanoBBS Chat
  5371.      places a big drag on your system's overall speed with a low
  5372.      "speed" setting, try slowing it.  I have found 15 works fine on
  5373.      my BBS.
  5374.  
  5375.      speed 15
  5376.  
  5377.      ──────────────────────────────────────────────────────────────
  5378.  
  5379.      This is the number of "votes" required to eject a user in a
  5380.      TeleTrial.
  5381.  
  5382.      teletrial     3
  5383.  
  5384.          ──────────────────────────────────────────────────────────────
  5385.  
  5386.      These are the access levels passed by the BBS and how they
  5387.          relate to NanoCHAT's six access classes.  Any level below that
  5388.      defined for NORMAL is deemed to be m0e access (undesirable or
  5389.      unvalidated users).
  5390.  
  5391.      access  normal    40
  5392.      access  vip       98
  5393.      access  moderator 200
  5394.      access  c0       400
  5395.      access  sysop       1000
  5396.  
  5397.          ──────────────────────────────────────────────────────────────
  5398.  
  5399.  
  5400.         NanoBBS 1.16 Documentation                              Page 90
  5401.  
  5402.      As in other chat systems, NanoBBS Chat allows you to quickly
  5403.      indicate a user's "rank" by the brackets around the node number
  5404.      in the /s and other displays
  5405.  
  5406.      brackets     m0e         ~E: ~E:
  5407.      brackets     normal      ~G( ~G)
  5408.      brackets     vip         ~O{ ~O}
  5409.      brackets     moderator     ~L< ~L>
  5410.      brackets     c0         ~P[ ~P]
  5411.      brackets     sysop         ~J█~b ~7~J█
  5412.  
  5413.      ──────────────────────────────────────────────────────────────
  5414.  
  5415.      The following are the maximum time limits for each access
  5416.      class. All time limits are in minutes.
  5417.  
  5418.      time     m0e         5
  5419.      time     normal      60
  5420.      time     vip         120
  5421.      time     moderator     180
  5422.      time     c0         1440
  5423.      time     sysop         1440
  5424.  
  5425.      ──────────────────────────────────────────────────────────────
  5426.  
  5427.      Access restrictions - any channels not defined here will be
  5428.      assumed open to everyone!
  5429.  
  5430.      Syntax: Channel {channelnumber} {accessrequired}
  5431.  
  5432.      Example:
  5433.  
  5434.      channel 69 50
  5435.  
  5436.      This sets a minimum access level of 50 to access channel 69...
  5437.  
  5438.      ──────────────────────────────────────────────────────────────
  5439.  
  5440.         ┌─────────────────────┐
  5441.     │ Actions and COMPACT │
  5442.     └─────────────────────┘
  5443.  
  5444.     Actions are one of the most popular features of advanced chat
  5445.     systems.  Basically, actions let you (virtually) -do- things
  5446.     with other users.  NanoCHAT's SmartActions contain a library of
  5447.     actions which can be publicly or secretly, adjusting
  5448.     grammatically for the person you're sending to (this is why
  5449.     NanoCHAT needs to know each user's sex).  Generic Actions are
  5450.     nowhere near as advanced as SmartActions but they can be made to
  5451.     "do" just about anything.  In this section we will concentrate
  5452.     on configuring SmartActions.
  5453.  
  5454.     SmartActions are defined in the file ACTIONS.CTL.
  5455.  
  5456.  
  5457.  
  5458.  
  5459.  
  5460.         NanoBBS 1.16 Documentation                              Page 91
  5461.  
  5462.         In order for actions to be used, they must first be compiled
  5463.     with the COMPACT (COMPile ACTions) program.  Just type COMPACT
  5464.     when you've finished making your changes to ACTIONS.CTL.
  5465.  
  5466.     There can be up to 256 actions from 0 to 255.
  5467.  
  5468.     Let's have a look at an example from the default ACTIONS.CTL:
  5469.  
  5470.     action    1
  5471.         command     wink
  5472.         access        10
  5473.         see me        You wink.
  5474.         see me2     You wink at ~r.
  5475.         see all     ~s winks seductively!
  5476.         see all2    ~s winks seductively at ~r!
  5477.         see all3    ~s winks knowingly at everyone!
  5478.         see you     ~s winks seductively at you~t!
  5479.         see noaccess    Your eyelids seem to be stuck!
  5480.     end
  5481.  
  5482.     As you can see, each action is started with the keyword ACTION
  5483.     followed by the action number (0 to 255).
  5484.  
  5485.     The COMMAND keyword specifies the /a command necessary to invoke
  5486.     the action.  In this case the command is "wink" so the user
  5487.     would type:
  5488.  
  5489.         /a wink
  5490.  
  5491.     ...to activate the command and wink at everyone.
  5492.  
  5493.     The "See" fields can be up to 80 characters including embedded ~
  5494.     codes.
  5495.  
  5496.     SEE ME pertains to what you see when you perform your action for
  5497.     no recipient or for ALL.
  5498.  
  5499.     SEE ME2 pertains to what you see when you perform your action
  5500.     for a specific user.
  5501.  
  5502.         SEE ALL pertains to what everyone sees when the user types the
  5503.     command with no recipient.  This may mean the action is done to
  5504.         all users, to nobody, or to the user herself.
  5505.  
  5506.     SEE ALL2 pertains to what everyone sees when the user types the
  5507.     command with a specific person as the recipient.  For example:
  5508.  
  5509.         /a wink tommy
  5510.  
  5511.     ...would cause everyone to see:
  5512.  
  5513.         Joanie winks seductively at Tommy!
  5514.  
  5515.     ...except Tommy who would see:
  5516.  
  5517.         Joanie winks seductively at you!
  5518.  
  5519.  
  5520.         NanoBBS 1.16 Documentation                              Page 92
  5521.  
  5522.  
  5523.     (see SEE YOU below).
  5524.  
  5525.     SEE ALL3 pertains to what everyone sees when ALL is the
  5526.     recipient.  This means that the action is performed for everyone
  5527.     present.
  5528.  
  5529.     SEE YOU pertains to what the recipient of an action sees.  See
  5530.     the SEE ALL2 example above.
  5531.  
  5532.     SEE NOACCESS is what the user sees if s/he tries to use an
  5533.     action they don't have access for.
  5534.  
  5535.  
  5536.     There are several ~ codes peculiar to intelligent actions (these
  5537.     only work within actions):
  5538.  
  5539.            ~r - Recipient's handle
  5540.            ~s - Sender's handle
  5541.            ~t - " secretly" if secret, nothing otherwise
  5542.            ~u - selected sender pronoun/noun
  5543.            ~U - selected recipient pronoun/noun
  5544.  
  5545.        Pronouns by number:
  5546.  
  5547.        If user is male/female:
  5548.  
  5549.            1: he/she
  5550.            2: his/her
  5551.            3: his/hers
  5552.            4: him/her
  5553.            5: boy/girl
  5554.            6: girl/boy
  5555.            7: man/woman
  5556.            8: woman/man
  5557.            9: dude/babe
  5558.  
  5559.         These pronouns can also be specified by name if typed exactly as
  5560.     shown above.  See ACTIONS.CTL for several live examples of the
  5561.     use of selected pronouns.  Grammaticists:  Yes, I know most of
  5562.     these are nouns - we hackers like to suppose things to save
  5563.     time...
  5564.  
  5565.  
  5566.     ┌──────────────────────────────────┐
  5567.     │ User and VIP Functions In Detail │
  5568.     └──────────────────────────────────┘
  5569.  
  5570.      The most important key for users, VIPs and co-sysops is the
  5571.      forward slash key "/".  All commands are preceded by the slash,
  5572.      and all are illustrated in this manual with the slash and
  5573.      command as they should be typed.
  5574.  
  5575.  
  5576.  
  5577.  
  5578.  
  5579.  
  5580.         NanoBBS 1.16 Documentation                              Page 93
  5581.  
  5582.             ┌─────────────┐
  5583.         │ Public Chat │
  5584.         └─────────────┘
  5585.  
  5586.         Public "Chat" is the most basic function offered by
  5587.         NanoCHAT.  Anything you type that is not preceded by the
  5588.         slash ("/") character is presumed by NanoCHAT to be a
  5589.         public statement.
  5590.  
  5591.         For example, if you were to simply type:
  5592.  
  5593.              Hello There.
  5594.  
  5595.         Everyone on your channel would see "Hello There." along
  5596.         with your handle and node number.
  5597.  
  5598.         ┌──────────────────┐
  5599.         │ Private Messages │
  5600.         └──────────────────┘
  5601.  
  5602.         Often it is desirable for users to carry on private
  5603.         conversations without leaving public channels.    This can
  5604.         be accomplished by using the /p command.  For example,
  5605.         if there is a user on line 12, and you wanted to
  5606.         privately say "Hi, Chuck!" to that user, you would type:
  5607.  
  5608.              /p12 Hi, Chuck!
  5609.  
  5610.         That user would see your message, along with your
  5611.         handle and node number, and would be informed that it is
  5612.         a private message.
  5613.  
  5614.         If there is no-one on the node you specify, NanoCHAT
  5615.         will inform you of this fact.
  5616.  
  5617.             ┌───────────────────┐
  5618.         │ Changing Channels │
  5619.         └───────────────────┘
  5620.  
  5621.         /t - Change "Channel" - NanoCHAT supports 256 "channels"
  5622.              so that separate discussions can be carried out
  5623.              without interference or confusion with other
  5624.              conversations.  Include the channel number you want
  5625.              to change to, example:
  5626.  
  5627.             /t42
  5628.  
  5629.              ... this will take you to channel 42.  Only other
  5630.              users on channel 42 will be able to see what you
  5631.              publicly type.  By default, you start out on
  5632.              Channel 1.
  5633.  
  5634.  
  5635.  
  5636.  
  5637.  
  5638.  
  5639.  
  5640.         NanoBBS 1.16 Documentation                              Page 94
  5641.  
  5642.             ┌─────────────────┐
  5643.         │ Generic Actions │
  5644.         └─────────────────┘
  5645.  
  5646.         /ga- "Generic Action" - crudely mimics a popular feature
  5647.              of other chat systems.  This command causes the
  5648.              system to make a third-party statement about you.
  5649.  
  5650.              Here is an example:
  5651.  
  5652.                         /a is laughing her fool head off!
  5653.  
  5654.              This might cause the following to be
  5655.              displayed to everyone on your channel:
  5656.  
  5657.                         Pebbles is laughing her fool head off!
  5658.  
  5659.         ┌───────────────┐
  5660.         │ Smart Actions │
  5661.         └───────────────┘
  5662.  
  5663.         Here is a list of default available actions:
  5664.  
  5665.         agree  back  bearhug   beer  beg  belch  bite  blush
  5666.         bonk  bow  brb    cheer  chill  chuckle  claw  comfort
  5667.         cough  crotchkick  cry     curtsy  dance    demand    duck
  5668.         duh   embrace    evilgrin   faint   fallinlove    fart
  5669.         finger     flash     flirt    french     frown    gasp   glare
  5670.         grin  groan  gross  handshake  hi5  impure  innocent
  5671.         kick   kickass    kill   kiss  laugh  lick  lie  loogy
  5672.         look   love   lust  moan  moo  moon   naked  niceass
  5673.         nod   puke   punch   purr   re     rip   rose   scream
  5674.         secret    shrug  sing   smack   smirk   smoke   smooch
  5675.         snicker   spank  streak   strip   thank  think    toke
  5676.         tongue    trudeau  ttyl  wave  wink  yawn
  5677.  
  5678.                 /a    Invoke an action.  You can invoke actions with no
  5679.               parameters, or you can specify a user (by name or
  5680.               node) you wish to perform the action on, or you
  5681.               can specify ALL to do it to everyone on your
  5682.               channel!    You can also do an action to a user
  5683.               secretly!
  5684.  
  5685.         Exemplia:
  5686.  
  5687.         /a hug Tommy
  5688.  
  5689.         This might produce the following output for all users:
  5690.  
  5691.         Cuddlez hugs Tommy close!
  5692.  
  5693.         ...except for the recipient who sees...
  5694.  
  5695.         Cuddlez hugs you close!
  5696.  
  5697.  
  5698.  
  5699.  
  5700.         NanoBBS 1.16 Documentation                              Page 95
  5701.  
  5702.                 /a tickle Cuddlez secretly
  5703.  
  5704.         This would not produce a message for anyone except the
  5705.         recipient and the sender.  The recipient would see
  5706.         something like this:
  5707.  
  5708.         Tommy is secretly tickling you silly!
  5709.  
  5710.  
  5711.         /a bonk all
  5712.  
  5713.         ...this might produce something like...
  5714.  
  5715.         Tommy is bonking everyone over the head!
  5716.  
  5717.                 SmartActions might use personal pronouns like She or He
  5718.         - these are automatically inserted correctly for the
  5719.         sending and receiving party's gender!
  5720.  
  5721.         If you would like to experiment with SmartActions, try
  5722.         performing them on yourself or in public on an empty
  5723.         channel, so as not to clutter busy channels...
  5724.  
  5725.         Type /al for a list of actions.
  5726.  
  5727.             ┌────────────┐
  5728.         │ Squelching │
  5729.         └────────────┘
  5730.  
  5731.         /x - "Squelch" - Disallows /p messages from a user.  To
  5732.              sqelch someone type /x followed by their node
  5733.              number, e.g.
  5734.  
  5735.             /x2
  5736.  
  5737.              This will stop whomever is on node 2 from sending
  5738.              you /p messages.  To allow a user to /p again, or
  5739.              "unsquelch", simply repeat the command, e.g. /x2
  5740.              a second time will unsquelch node 2.
  5741.  
  5742.         /xa- "Squelch All" - Disallows /p messages from all
  5743.              users!  This will actually squelch everyone who is
  5744.              on at the time, however if someone logs off and
  5745.              comes back, they will be able to /p you again.  You
  5746.              can unsquelch everyone by typing /xa again, and you
  5747.              can selectively unsquelch certain users using the
  5748.              above /x command.
  5749.  
  5750.         ┌─────────────────┐
  5751.         │ System Messages │
  5752.         └─────────────────┘
  5753.  
  5754.         /mxxx
  5755.  
  5756.         This displays one of the system messages which are
  5757.         automatically displayed from time to time.  xxx can be
  5758.  
  5759.  
  5760.         NanoBBS 1.16 Documentation                              Page 96
  5761.  
  5762.                 any combination of 1 to 7 alphanumeric characters.  This
  5763.         is called the "slot name" of the message.  It
  5764.                 corresponds to a textfile on disk.  If a message is
  5765.         displayed as /ma, its filename is MA.TCH.
  5766.  
  5767.         Example:
  5768.  
  5769.              /ma
  5770.  
  5771.         will display the /ma message (if present).
  5772.  
  5773.         Users can be assigned message slots online using the
  5774.         co-sys0p command /ka (see the "Sysop and Co-Sys0p
  5775.         Functions" section of this manual).  A user who has been
  5776.         assigned a slot may edit its contents by typing
  5777.  
  5778.              /m+ xxx
  5779.  
  5780.         ... where xxx is the slot name.  If the user specifies the
  5781.         wrong slot name an error is reported.
  5782.  
  5783.         Once this command is accepted, the user then sends up to
  5784.         16k of ASCII or ANSI text terminated by ^Z (ASCII 26).
  5785.         When the system receives the ^Z the message is saved.
  5786.         It can then be seen by typing /mxxx (xxx being the
  5787.         name) and will appear automatically during the random
  5788.         /m messages.
  5789.  
  5790.         There is a special kind of system message called an
  5791.         information file.  This is exactly the same as a /m
  5792.         message except that it cannot be assigned to a user.  It
  5793.         is accessed by typing
  5794.  
  5795.              /ixxx
  5796.  
  5797.         ...where xxx is the name, similar to /m messages.  /i
  5798.         messages are used for static information about the chat
  5799.         system, e.g. its rules, its technical information, etc.
  5800.  
  5801.         /m messages are normally displayed at random during
  5802.         regular intervals, defined by the SysOp.  Users can turn
  5803.         these automatic messages off by typing:
  5804.  
  5805.                     /m-
  5806.  
  5807.         ┌────────────┐
  5808.         │ Tele-Trial │
  5809.         └────────────┘
  5810.  
  5811.         /tt nnn
  5812.  
  5813.         A TeleTrial is a quick-and-dirty vote taken by ordinary
  5814.         users to have an annoying user ejected from the system,
  5815.         where nnn is the node number of the user to be booted.
  5816.         Once enough votes are cast, the user is history.  Only
  5817.         one vote per user.
  5818.  
  5819.  
  5820.         NanoBBS 1.16 Documentation                              Page 97
  5821.  
  5822.  
  5823.             ┌────────────────────────────────────┐
  5824.             │ Summoning Callers Outside NanoCHAT │
  5825.             └────────────────────────────────────┘
  5826.  
  5827.                 /pg
  5828.             or page
  5829.  
  5830.                 By typing the word page by itself in NanoCHAT, the caller
  5831.                 can invoke the user paging feature, in which the caller can
  5832.                 "page" another caller to NanoCHAT.
  5833.  
  5834.                 /tg
  5835.             or telegram
  5836.  
  5837.                 By typing the word telegram by itself in NanoCHAT, the
  5838.                 caller can send a user on another node a 255-character
  5839.                 "telegram".
  5840.  
  5841.             ┌─────────────────────────┐
  5842.         │ Miscellaneous Functions │
  5843.         └─────────────────────────┘
  5844.  
  5845.         /? - This command displays the user help file,
  5846.              with a concise explanation of each command.
  5847.  
  5848.         /q - "Quit": This command exits NanoCHAT and returns
  5849.              the caller to the BBS.
  5850.  
  5851.         /s - "Status": This command displays a brief summary
  5852.              of all users who are using NanoCHAT.  It displays
  5853.              the channel number, node number, and handle of each
  5854.              user as well as indicating which nodes are squelched
  5855.              or muted, and which ones have the caller squelched.
  5856.  
  5857.         /sm - "Show Members": This command displays a list of all
  5858.              users in NanoCHAT's user database.
  5859.  
  5860.                 /h - "Handle": This allows the caller to change her/his
  5861.              handle.  It can be changed for the current call only,
  5862.              or saved permanently in the user database, if the
  5863.              caller chooses.  Users may include embedded colour
  5864.              codes in handles.
  5865.  
  5866.         /u1 - "Hello Message": This allows the caller to change
  5867.               the message displayed by the system when s/he logs
  5868.               on.  It may contain embedded characters and can be
  5869.               up to 96 characters in length.  If no string
  5870.               follows, the message is replaced with the default
  5871.               message defined by the sysop.
  5872.  
  5873.         /u2 - "Goodbye Message": This allows the caller to
  5874.               change the message displayed by the system when
  5875.               s/he logs off.  Like the "Hello" message it can
  5876.               contain up to 96 characters.
  5877.  
  5878.  
  5879.  
  5880.         NanoBBS 1.16 Documentation                              Page 98
  5881.  
  5882.         ┌─────────────────────────────────────┐
  5883.     │ SysOp and "c0" (Co-SysOp) Functions │
  5884.     └─────────────────────────────────────┘
  5885.  
  5886.         There are 6 access classes in NanoCHAT:
  5887.  
  5888.             Sys0p    (highest)
  5889.             Co-Sys0p
  5890.             Moderator
  5891.             VIP
  5892.             Normal
  5893.             m0e    (lowest)
  5894.  
  5895.               ┌────────────────────┐
  5896.           │ Moderator commands │
  5897.           └────────────────────┘
  5898.  
  5899.             /k?      Display a command list for moderators,
  5900.                   c0-sys0ps, and sys0ps.
  5901.  
  5902.             /kx nnn   Eject user on node nnn - This will
  5903.                   inform the user in question that
  5904.                   s/he's being tossed, and will then
  5905.                   exit the chat door.
  5906.  
  5907.             /kj nnn   Jail user on node nnn - This will
  5908.                   prevent the user from changing to
  5909.                   another channel
  5910.  
  5911.             /km nnn   Mute user on node nnn - This will
  5912.                   cause the user's task to ignore any
  5913.                   public messages, private messages, or
  5914.                   actions s/he may attempt.
  5915.  
  5916.               ┌───────────────────┐
  5917.           │ Co-Sys0p commands │
  5918.           └───────────────────┘
  5919.  
  5920.         (Note: Co-Sys0ps also have access to moderator commands)
  5921.  
  5922.             /k+ nnn   Promote user on node nnn -
  5923.                   This temporarily increases the user's
  5924.                   access level to the next class.  M0es
  5925.                   are made normal, normals VIP, and VIPs
  5926.                   moderators.  The maximum level allowed
  5927.                   by this command is Moderator.
  5928.  
  5929.             /k- nnn   Demote user on node nnn -
  5930.                   This has the opposite effect of /k+.
  5931.                   Other c0-sys0ps (and sys0ps) are
  5932.                   unaffected by this command.
  5933.  
  5934.             /ky nnn   Rudely eject user on node nnn -
  5935.                   This is very similar to /kx, but it
  5936.                   will simply hang up on the user
  5937.                   without an explanatory message of any
  5938.                   sort.
  5939.  
  5940.         NanoBBS 1.16 Documentation                              Page 99
  5941.  
  5942.             /ka nnn yyy  Set /m slot for user on node nnn -
  5943.                   This will assign a message slot to the
  5944.                   user on nnn, where yyy is the message
  5945.                   name.  yyy can be from 1 to 7
  5946.                   alphanumeric characters in length.
  5947.                   This assignment is saved in the user's
  5948.                   userbase record and is the only field
  5949.                   editable by non-Sys0p c0's.
  5950.  
  5951.                         /ka nnn   Revoke /m slot for user on node nnn
  5952.                   /ka with no slot name will render the
  5953.                   user unable to modify any /m slot!
  5954.  
  5955.             /kd nnn   De-stat user on node nnn
  5956.                   This is a somewhat technical command
  5957.                   which should be used when, for
  5958.                   whatever reason, a user leaves chat
  5959.                   but still shows up in the /s list.
  5960.                   That non-user could continue receiving
  5961.                   messages from other nodes until the
  5962.                   IPC drive fills, which would cause
  5963.                   problems for the whole system,
  5964.                   therefore c0's may forestall such
  5965.                   problems with this command.  It will
  5966.                   also delete any dead IPCs which have
  5967.                   accumulated for the user.
  5968.  
  5969.             /kh nnn <handle>  Temporarily change handle of
  5970.                   user on node nnn to <handle>. This is
  5971.                   useful when a user chooses an
  5972.                   unacceptable handle.
  5973.  
  5974.                         /kt nnn ttt  Temporarily change user's channel
  5975.                   to channel ttt (where ttt is a valid
  5976.                   channel from 1 to 255).  You can keep
  5977.                                   the user there by "Jailing" her.
  5978.  
  5979.           ┌────────────────┐
  5980.           │ Sys0p commands │
  5981.           └────────────────┘ (Note: Sys0ps have access to ALL system
  5982.             functions including moderator and co-sys0p functions)
  5983.  
  5984.             /k* nnn   Temporarily grant/revoke Co-sys0p
  5985.                   access for node nnn.    When access is
  5986.                   revoked the user's access returns to
  5987.                   the access level the user logged in
  5988.                   with.
  5989.  
  5990.             /kb nnn   "Bar" a user on node nnn and eject.
  5991.                   This is identical to /ky except that
  5992.                   prior to hanging up on the user, the
  5993.                   system will add the user's BBS name to
  5994.                   a "barred" file or blacklist will then
  5995.                   prevent the user from using the door
  5996.                   again until the name is removed from
  5997.                   the blacklist.  The blacklist is a
  5998.  
  5999.  
  6000.         NanoBBS 1.16 Documentation                              Page 100
  6001.  
  6002.                                   simple textfile which can be edited in
  6003.                   any text editor (you may add, remove,
  6004.                   or modify names this way) with the
  6005.                   filename NanoCHAT.BAR.
  6006.  
  6007.             /ke uuu   Edit user record for user number uuu
  6008.                   uuu is a user record number, not a
  6009.                   node number!    You can edit any user
  6010.                   this way, regardless of whether s/he
  6011.  
  6012.                                   is online at the time.  If the user is
  6013.                   online, the changes you make will
  6014.                                   apply to them immediately!  To find a
  6015.                   user's user number, the user command
  6016.                   /sm will display the user number of
  6017.                   each user.
  6018.  
  6019.             /ks      System Status.  This will display the
  6020.                   number of callers online, the number
  6021.                   of bytes free on the IPC and system
  6022.                   drives, the size of available memory,
  6023.                   the number of /m messages available,
  6024.                   and the total number of users in the
  6025.                   userbase.
  6026.  
  6027.  
  6028.  
  6029.  
  6030.  
  6031.  
  6032.  
  6033.  
  6034.  
  6035.  
  6036.  
  6037.  
  6038.  
  6039.  
  6040.  
  6041.  
  6042.  
  6043.  
  6044.  
  6045.  
  6046.  
  6047.  
  6048.  
  6049.  
  6050.  
  6051.  
  6052.  
  6053.  
  6054.  
  6055.  
  6056.  
  6057.  
  6058.  
  6059.  
  6060.         NanoBBS 1.16 Documentation                              Page 101
  6061.  
  6062.         ╔═╦═══════════════════════════════════════════════════════════╦═╗
  6063.         ║ ║                         GLOSSARY                          ║ ║
  6064.     ╚═╩═══════════════════════════════════════════════════════════╩═╝
  6065.  
  6066.         Here is a list of some of the technical terms used in the
  6067.         NanoBBS documentation, along with some terms you're likely to
  6068.         encounter as a sysop.
  6069.  
  6070.         ARC - An older archiving program by SEA (System Enhancement
  6071.               Associates).  This program is no longer widely used to
  6072.               archive software on BBSes but is still the only recognized
  6073.               archiver for FidoNet echomail transfers.
  6074.  
  6075.         ARJ - An archiving program by Robert K. Jung.  Not as widely
  6076.               used as ZIP, its compression and speed are competetive and
  6077.               its registration price is a little cheaper.
  6078.  
  6079.         ANSI - This term is a sort of misnomer.  In sysop usage, it
  6080.                refers to IBM's colour version of the DEC VT-100 terminal
  6081.                command language.  This protocol is what gives most BBSes
  6082.                their colour menus and screens.  Virtually all terminal
  6083.                programs written for the IBM PC support this standard and
  6084.                default to it.
  6085.  
  6086.         Baud - A term which refers to a change in the signal state in a
  6087.                modem's modulation.  Baud and BPS (modem speed) used to
  6088.                be the same quantity when 300 baud was standard, but
  6089.                today's advanced modulation schemes are able to attach
  6090.                many bits to each baud to increase real speed (BPS).
  6091.                Baud and BPS are still used interchangeably in common
  6092.                conversation, but they are no longer the same and you'll
  6093.                likely be indignantly corrected by certain smug gurus if
  6094.                you should accidentally post something which suggests
  6095.                that they are...
  6096.  
  6097.         BBS - Bulletin Board System.  An online service, usually run on
  6098.               a single PC or a local area network of PCs.  NanoBBS is a
  6099.               software program which can turn your system into a BBS.
  6100.  
  6101.         BPS - Bits per Second.  The speed of your modem.  This is not to
  6102.               be confused with Baud, which is an inaccurate name for
  6103.               modem speed.  Nevertheless, Baud is more commonly used so
  6104.               it's generally acceptable to talk about a "14400 baud"
  6105.               modem even though there's no such thing.  It's 14400 BPS,
  6106.               but only 2400 baud (it moves 6 bits per baud)
  6107.  
  6108.         Chat - There are two types of Chat.  The kind most sysops are
  6109.                familiar with is "sysop chat" where the sysop hits Alt-C
  6110.                and "breaks in" to type in real time to the user, who can
  6111.                type back.  NanoBBS also supports "teleconference chat"
  6112.                via NanoCHAT.  The best BBS software packages support
  6113.                teleconference chat, and most BBSes with two or more
  6114.                lines have it implemented in one form or another.  NOTE:
  6115.                There are so many technical and not-so-technical terms
  6116.                dealing with teleconference chat that I could devote a
  6117.                whole glossary to just them.  However, they are well
  6118.  
  6119.  
  6120.         NanoBBS 1.16 Documentation                              Page 102
  6121.  
  6122.                covered in the chapter on NanoCHAT.
  6123.  
  6124.         Doors - Doors are external programs, usually games, that the
  6125.                 user can run from the BBS.  The attraction to doors is
  6126.                 that they allow many people to play the same game and
  6127.                 compete with each other, while most video games are
  6128.                 limited to one or two players. Although most doors are
  6129.                 games, many have other functions such as taking surveys,
  6130.                 match-making, and providing a .QWK mail interface, to
  6131.                 name but a few.
  6132.  
  6133.         Download - Downloading is what happens when the BBS sends the
  6134.                    user one or more files at her request.
  6135.  
  6136.         Echomail - A type of shared message area.  Through the use of a
  6137.                    Fidonet Technology Mailer and an Echomail Packer, you
  6138.                    can "share" message areas with other BBS, so that
  6139.                    your users and users of other BBSes can converse on
  6140.                    the same subject without all the parties having to
  6141.                    call all the BBSes.  A message posted on one BBS in
  6142.                    the echo network is automatically posted to the same
  6143.                    area on all the other participating systems. Some
  6144.                    echoes are very popular and are shared by hundreds of
  6145.                    systems, and have hundreds of messages posted to them
  6146.                    every day!
  6147.  
  6148.         Echomail Processor - This is a program which, after your Fidonet
  6149.                              mailer has received echomail packets, unpacks
  6150.                              the packets and processes them into a form
  6151.                              useable by NanoBBS.  It also checks the
  6152.                              message bases to see if you or your callers
  6153.                              have entered any new messages, and if any new
  6154.                              messages exist, it packs them up and prepares
  6155.                              them to be sent out to the net by your mailer.
  6156.  
  6157.         FILE_ID.DIZ - This is a small text file that is often found inside
  6158.                       ZIP archives.  It is used to describe the contents of
  6159.                       the ZIP archive and is usually imported directly into
  6160.                       the BBS's FILES.BBS file lists.  The extension DIZ
  6161.                       stands for "Description In Zip".
  6162.  
  6163.         FOSSIL - A FOSSIL is a standard serial port device driver.  The
  6164.                  word FOSSIL is an acronym which stands for Fido Opus
  6165.                  Seadog Standard Interface Layer.  In the early days of
  6166.                  Fidonet, many computers were only partially IBM
  6167.                  compatible, and serial port compatibility among these old
  6168.                  machines was a particularly difficult point.  So, it was
  6169.                  decided by several online software authors (among them
  6170.                  Fido, Opus and SEADog) to create a standard serial port
  6171.                  interface for which any software could be written.  The
  6172.                  interface is serviced by a device driver - the FOSSIL.
  6173.                  Then, the creation of FOSSILs was left to the
  6174.                  manufacturers and users of the various quasi-compatible
  6175.                  machines, and the end result was that if a FOSSIL existed
  6176.                  for your machine, it could run any FOSSIL based software.
  6177.                  Today, FOSSILs are used mainly for the convenience of BBS
  6178.                  and door authors, but they still serve their original
  6179.  
  6180.         NanoBBS 1.16 Documentation                              Page 103
  6181.  
  6182.                  purpose now that FOSSILs are being written for
  6183.                  non-standard multi-port serial cards.  X00 by Ray Gwinn
  6184.                  and BNU by David Nugent are perhaps the two most widely
  6185.                  used FOSSIL drivers.
  6186.  
  6187.         FSE - Full Screen Editor.  This is a part of NanoBBS that lets
  6188.               you enter messages in a convenient full-screen environment
  6189.               similar to a word processor.  The alternative is an
  6190.               old-fashioned line-by-line editor, akin to DOS's Edlin
  6191.               program.  Some other BBSes need an external program to
  6192.               support an FSE, but NanoBBS has one called NEd
  6193.               (NanoEditor) built in!
  6194.  
  6195.         FTN - Fidonet Technology Network.  This is a network of BBSes
  6196.               which uses the protocols and software developed originally
  6197.               for Fidonet.  There are many FTNs including, of course,
  6198.               Fidonet.  These networks cover the spectrum from general
  6199.               interest chat type networks to very specialized subject
  6200.               matter.  Joining an FTN requires, at minimum, a mailer
  6201.               such as BinkleyTerm or Intermail, an echomail processor
  6202.               such as Squish or FMail, and a Fidonet compatible BBS such
  6203.               as Maximus-CBCS.
  6204.  
  6205.         .GZ - GZip is a portable compression method used mainly on Unix
  6206.               systems.  An MS-DOS version is available on many FTP sites.
  6207.  
  6208.         Leech - A derogatory term used by sysops to describe users who
  6209.                 only download and never post messages or upload.  This
  6210.                 term is used mainly by sysops who run free BBSes.  If
  6211.                 you're running a BBS for profit, you need to take a
  6212.                 whole different attitude.
  6213.  
  6214.         LZH - An archiving method by Haruyasu Yoshizaki (the program is
  6215.               called LHA, even though the file extensions are LZH).
  6216.               Competitive compression and speed, and freely
  6217.               distributable and usable by noncommercial users!
  6218.  
  6219.         Mailer - Sometimes called a Front End Mailer or a Front Door (hence
  6220.                  the name of that particular mailer product).  A Mailer is
  6221.                  a system which is responsible for communicating with
  6222.                  Fidonet and other fidonet-technology networks.  Usually,
  6223.                  it answers the phone, determines whether the call is a
  6224.                  mail call or a BBS call, and brings up the BBS if it's a
  6225.                  BBS call.  If it's a mail call, the mailer will receive
  6226.                  any incoming mail, send any outgoing mail that may be
  6227.                  waiting to go to the system that is calling, and then
  6228.                  finish the call, exit the mailer back to a batch file,
  6229.                  which runs other programs necessary to process the mail.
  6230.                  If you are in Fidonet you will need a mailer and an
  6231.                  echomail processor in order for NanoBBS to properly handle
  6232.                  Fidonet netmail and echomail.
  6233.  
  6234.         Modem - The device which converts digital data into audible
  6235.                 sounds (or their electrical equivalents) which can be
  6236.                 transmitted over the phone lines, and then back into data
  6237.                 again.  One of the most basic hardware requirements for a
  6238.                 BBS.
  6239.  
  6240.         NanoBBS 1.16 Documentation                              Page 104
  6241.  
  6242.         Offline Reader - This is a program which lets a user read her
  6243.                          messages after she has logged off of the BBS
  6244.                          where the messages came from.  The user logs on
  6245.                          to the BBS, downloads all the new messages at
  6246.                          once, then logs off and uses the offline reader
  6247.                          to read them at her leisure.  This cuts down on
  6248.                          connect time, and is more convenient for the
  6249.                          user.
  6250.  
  6251.         Page - The act of summoning someone on a BBS for live "chat".
  6252.                NanoBBS has two kinds of page: SysOp paging, in which
  6253.                NanoBBS plays a little tune to get an inattentive sysop's
  6254.                attention, and user chat, in which callers can
  6255.                electronically page each other online and rendezvous in
  6256.                NanoCHAT.
  6257.  
  6258.         QWK - A message format developed for PC-Board systems.  This
  6259.               format is mainly used for offline readers (see above).
  6260.               NanoBBS supports this, of course.
  6261.  
  6262.         RIP - Remote Imaging Protocol.  This is a graphics display
  6263.               protocol used in some of the more recent BBS and terminal
  6264.               programs - including NanoBBS.  RIP allows you to build
  6265.               highly complex graphical menus and screens, and lets your
  6266.               user point-and-click their way around your BBS.  If you
  6267.               want your BBS to appeal to the "all thumbs" type user, you
  6268.               definitely should seriously consider setting up NanoBBS
  6269.               for RIP support!
  6270.  
  6271.         Semaphore - A semaphore is a file, usually zero bytes in size, that
  6272.                     is written to indicate to a batch file or to another
  6273.                     program that the other program has to do something.
  6274.                     Often semaphores are the only way for unrelated
  6275.                     programs to communicate with each other.
  6276.  
  6277.         Shareware - A try-before-you-buy software marketing concept.
  6278.                     Software is distributed publicly with little or no
  6279.                     documentation and usually with several important
  6280.                     features disabled.  If users like the program they
  6281.                     are expected to pay for the full version, which is
  6282.                     normally shipped by mail with the full packaging,
  6283.                     documentation, technical support and other goodies.
  6284.                     NanoBBS is distributed as shareware.
  6285.  
  6286.         SysOp - The person who runs the BBS.  In short, YOU.  This word
  6287.                 is a contraction of SYStem OPerator.  You may elect to
  6288.                 appoint co-sysops, who have equal control over the BBS,
  6289.                 assistant sysops who are able to carry out basic
  6290.                 housekeeping functions, and moderators, which are really
  6291.                 just regular users who can delete messages from other
  6292.                 users and are politically empowered by you to maintain
  6293.                 decorum.
  6294.  
  6295.  
  6296.  
  6297.  
  6298.  
  6299.  
  6300.         NanoBBS 1.16 Documentation                              Page 105
  6301.  
  6302.         Telegram - a short message (under 255 characters) sent from one
  6303.                    user to another while both are online on a multi-node
  6304.                    system. Telegrams are a one-shot alternative to going
  6305.                    into chat and let users communicate while they're
  6306.                    browsing in menus.
  6307.  
  6308.         Terminal - That's the program a user uses to call your BBS.
  6309.                    Some of the best are QmodemPro from Mustang Software,
  6310.                    and Telix from DeltaComm.  Both are promoted heavily
  6311.                    on BBSes by their publishers.  Special-purpose
  6312.                    terminals like RipTerm should always be made easily
  6313.                    accessible to users if your BBS supports their
  6314.                    special protocols.  Make sure you have the shareware
  6315.                    test-drive versions of major terminal programs easily
  6316.                    available to new users, so that they can upgrade
  6317.                    right away from the second-rate terminal programs
  6318.                    that usually come with modems at the time of
  6319.                    purchase.
  6320.  
  6321.         Trashcan - A control file used by your BBS to detect problem
  6322.                    users and reject them.  When you have to remove a
  6323.                    problem user, you put her name and known aliases in
  6324.                    this file and the BBS will reject any logon with
  6325.                    those names.  It is considered a measure of a sysop's
  6326.                    success as a diplomat if her trashcan is empty...
  6327.  
  6328.         Twit - A term used by sysops to describe a problem user.  Not to be
  6329.                confused with Hacker.
  6330.  
  6331.         Upload - Uploading is when a user sends the BBS one or more
  6332.                  files.
  6333.  
  6334.         Usenet - A set of "newsgroups" which are actually not unlike FTN
  6335.                  echoes, but are usually moderated.  These are
  6336.                  propagated through the internet rather than through
  6337.                  phone lines as FTN echoes are.  Usenet newsgroups exist
  6338.                  for virtually every conceivable field of interest.  If
  6339.                  you have a full Usenet feed, your users will never have
  6340.                  a shortage of messages to read, but you may develop a
  6341.                  shortage of disk space!
  6342.  
  6343.         WFC - Waiting For Call.  This is what the screen displayed by
  6344.               the BBS while waiting for a call is called.  If your BBS
  6345.               is successful, you'll see very little of the WFC screen.
  6346.  
  6347.         Xmodem - A very old file-transfer protocol, Xmodem is nearly
  6348.                  extinct.  It is a block transfer protocol which sends
  6349.                  files in blocks of 128 bytes, waiting for
  6350.                  acknowledgement (and a checksum) before sending the
  6351.                  next block.  In the real world, the best efficiency you
  6352.                  can hope for is about 75%, but it's usually worse than
  6353.                  that.  Users should be discouraged from using Xmodem -
  6354.                  point them to a terminal program that supports Zmodem,
  6355.                  and ask that they download (and use) it.  Once the user
  6356.                  has tried Zmodem, she'll never want to go back - mention
  6357.                  something to that effect while you're trying to talk
  6358.                  the user into changing terminals!
  6359.  
  6360.         NanoBBS 1.16 Documentation                              Page 106
  6361.  
  6362.         .Z - Files compressed by Unix systems often have a .Z extension.
  6363.              There are Unix uncompressors for most platforms including
  6364.              MS-DOS.
  6365.  
  6366.         ZIP - A file compression method developed by Phil Katz.  This is
  6367.               probably the most common method used by PC users.
  6368.               Compression ratios in the latest versions are excellent;
  6369.               this format is well worth standardizing your BBS to.  Some
  6370.               BBSes will not accept uploads with any other archiver!
  6371.  
  6372.         Zmodem - A very popular file-transfer protocol.  Zmodem
  6373.                  automatically transfers files from one computer to the
  6374.                  other with full filename and date preservation, and
  6375.                  includes a "resume" feature in case the transfer is cut
  6376.                  off.  It is also very efficient, because it is a
  6377.                  "streaming" protocol - it doesn't wait for
  6378.                  acknowledgement of each block before sending another.
  6379.                  This allows efficiencies very close to 100%.
  6380.  
  6381.         Zoo - A very portable compression method.  You might see files
  6382.               created on Macintosh, Amiga or Unix-based computers but
  6383.               intended for multiple platforms, compressed in this
  6384.               format.  It's slow and not as efficient as other archivers
  6385.               but it's available for nearly every platform I've seen.
  6386.  
  6387.  
  6388.  
  6389.  
  6390.  
  6391.  
  6392.  
  6393.  
  6394.  
  6395.  
  6396.  
  6397.  
  6398.  
  6399.  
  6400.  
  6401.  
  6402.  
  6403.  
  6404.  
  6405.  
  6406.  
  6407.  
  6408.  
  6409.  
  6410.  
  6411.  
  6412.  
  6413.  
  6414.  
  6415.  
  6416.  
  6417.  
  6418.  
  6419.  
  6420.         NanoBBS 1.16 Documentation                              Page 107
  6421.  
  6422.  
  6423.  
  6424.  
  6425.  
  6426.  
  6427.  
  6428.  
  6429.  
  6430.  
  6431.  
  6432.  
  6433.  
  6434.  
  6435.  
  6436.  
  6437.  
  6438.  
  6439.  
  6440.          ▄█████▄  ▄█████▄  ▄█████▄   ▄████▄  ▄█████▄  ▄█████▄   ▄████▄
  6441.          ▄▄▄ ▀███ ▄▄▄ ▀███ ▄▄▄ ▀███ ▄▄▄ ▀███ ▄▄▄  ██▀ ▄▄▄  ██▀ ▄▄▄  ▀▀▀
  6442.          ███  ███ ███  ███ ███  ███ ███  ███ ██████▄  ██████▄   ▀████▄
  6443.          ███  ███ ████████ ███  ███ ███▄ ███ ███  ███ ███  ███ ▄▄▄  ███
  6444.          ███  ███ ███  ███ ███  ███  ▀████▀  ██████▀  ██████▀   ▀████▀
  6445.  
  6446.                                 NanoBBS 1.16
  6447.                     Copyright 1993-1996 Whirlwind Software
  6448.                              All Rights Reserved
  6449.  
  6450.         ───────────────────────────────────────────────────────────────
  6451.  
  6452.         Contact Information:
  6453.  
  6454.         Mail:
  6455.  
  6456.                         Whirlwind Software
  6457.                         P.O. Box 5874
  6458.                         Victoria, B.C.
  6459.                         Canada    V8R 6S8
  6460.  
  6461.         E-mail: ue075@freenet.victoria.bc.ca
  6462.  
  6463.         CompuServe: 76722,2330
  6464.  
  6465.         Fidonet: 1:340/26
  6466.  
  6467.         BBS: +1 604 361 4549 (300-33600 bps, 24 hours)
  6468.  
  6469.         Voice: +1 604 361 1820
  6470.  
  6471.  
  6472.  
  6473.  
  6474.  
  6475.  
  6476.  
  6477.  
  6478.  
  6479.  
  6480.         NanoBBS 1.16 Documentation                              Page 108
  6481.  
  6482.